Java IO流 个人总结
首先流的分类:
按方向分:输入流 OR 输出流
按单位分:字节流 OR 字符流
按功能分:节点流 OR 过滤流

//字节流到字符流的转换 桥转换器可以指定编码
else if(("focus.txt").equals(fs.getName().toLowerCase())){
BufferedReader bur=new BufferedReader(new InputStreamReader(new FileInputStream(fs),"gbk"));
BufferedWriter buw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream( "D:\\IO汇总.txt",true),"gbk"));
String str;
while ((str=bur.readLine())!=null){
buw.write(str);
buw.newLine();
}
buw.close();
}
FileInputStream 以-1作为读取结束的标识
BufferedInputStream 同样以-1作为读取结束的标识
BufferedReader 不以-1作为结束标识 而是null
//字符流
import java.io.*;
public class TestBufferedReader{
public static void main(String[] args)throws Exception{
BufferedReader br = new BufferedReader(new FileReader("focus.txt"));
String str;
while((str = br.readLine())!=null){
if(str.contains("Stream")){
System.out.println(str);
}
}
br.close();
}
}
//字节流
import java.io.*;
public class TestFileInputStream{
public static void main(String[] args)throws Exception{
FileInputStream fis = new FileInputStream("abc.txt");
byte[] data = new byte[3];
int len;
while((len = fis.read(data))!=-1){
for(int i = 0;i<len;i++){
System.out.print((char)data[i]);
}
}
/*
int data;
while((data = fis.read())!=-1){
System.out.print((char)data);
}
*/
fis.close();
}
}
几点注意:
1.节点输出流 创建对象的时候 即便连接的文件不存在
也会在创建流的那一刻 自动创建文件 不需要程序员手动建
其实File类有个createNewFile()
2、但是如果连接的目录结构不存在 则直接出现异常
所以File类有个mkdirs() 一等优先级
3. 节点输出流 创建对象的时候 如果连接的文件已经存在
也会在创建流的那一刻 被新的空白文件直接替换
所以务必注意 节点输出流是有很强的杀伤性的
如果我们的需求是 想要在原有内容之后追加新的内容
此时可以使用构造方法第二个参数指定追加模式开启
new FileOutputStream(“abc.txt”,true);
true => 代表追加模式开启
4.使用IO流 请务必在读写结束的第一时间关流
本文深入探讨Java中IO流的概念及应用,包括流的分类、字节流与字符流的区别及转换方法,并通过实例演示了如何使用BufferedReader与FileInputStream进行文件读取操作。
&spm=1001.2101.3001.5002&articleId=109136175&d=1&t=3&u=a0e31d2f8e254ae7b2297ad679e62ef1)
1235

被折叠的 条评论
为什么被折叠?



