栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA IO流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA IO流

什么是输入/输出流

Java 程序通过流来完成输入/输出,所有的输入/输出以流的形式处理。因此要了解 I/O 系统,首先要理解输入/输出流的概念。

输入就是将数据从各种输入设备(包括文件、键盘等)中读取到内存中,输出则正好相反,是将数据写入到各种输出设备(比如文件、显示器、磁盘等)。例如键盘就是一个标准的输入设备,而显示器就是一个标准的输出设备,但是文件既可以作为输入设备,又可以作为输出设备。

数据流是 Java 进行 I/O 操作的对象,它按照不同的标准可以分为不同的类别。

  • 按照流的方向主要分为输入流和输出流两大类。


  • 数据流按照数据单位的不同分为字节流和字符流。

  • 按照功能可以划分为节点流和处理流。
常用字节字符流流代码 文件字节流
//读取文件
File file=new File("./test.txt");
//输出流
OutputStream outputStream=new FileOutputStream(file,true);
outputStream.write("你好".getBytes());
outputStream.close();
//输入流,用bytes数组和stringBuilder接收
InputStream inputStream=new FileInputStream(file);
byte[] bytes=new byte[1024];
int length=0;
StringBuilder stringBuilder=new StringBuilder();

while((length=inputStream.read(bytes))!=-1){
    stringBuilder.append(new String(bytes,0,length));
}
inputStream.close();

System.out.println(stringBuilder);
缓冲字节流
InputStream bufferedInputStream=new BufferedInputStream(new FileInputStream("./test.txt"));

byte[] bytes=new byte[1024];
int l=0;
StringBuffer stringBuffer=new StringBuffer();

while((l=bufferedInputStream.read(bytes))!=-1){
    stringBuffer.append(new String(bytes,0,l));
}

bufferedInputStream.close();
System.out.println(stringBuffer);
字符流
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(new FileOutputStream("./test.txt",true),"UTF-8");
outputStreamWriter.write("你好");
outputStreamWriter.close();

InputStreamReader inputStreamReader=new InputStreamReader(new FileInputStream("./test.txt"));
//字符数组接受,一次读取多少字符
char[] chars=new char[1024];

int length=0;
StringBuilder stringBuilder=new StringBuilder();
while((length=inputStreamReader.read(chars))!=-1){
    stringBuilder.append(chars,0,length);
}
inputStreamReader.close();

System.out.println(stringBuilder);
文件字符流
FileWriter fileWriter=new FileWriter("./test.txt",true);
fileWriter.write("在吗");
fileWriter.close();

FileReader fileReader=new FileReader("./test.txt");
char[] chars=new char[1024];
int l=0;
StringBuilder stringBuilder=new StringBuilder();

while((l=fileReader.read(chars))!=-1){
    stringBuilder.append(chars,0,l);
}
System.out.println(stringBuilder.toString());
字符缓冲流
BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter("./test.txt",true));
bufferedWriter.newLine();
bufferedWriter.write("你好");
bufferedWriter.close();

BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(new FileInputStream("./test.txt")));
String line;
StringBuilder stringBuilder=new StringBuilder();

//使用readline读取一行的数据
while((line=bufferedReader.readLine())!=null){
    stringBuilder.append(line);
}
bufferedReader.close();


System.out.println(stringBuilder);        
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827435.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号