文章内容概括:
点击文字即可跳转
- 什么是缓存流
- 缓存输入流,读取文件
- 缓存输出流,写入数据
- 综合演练,读取A文件,并将内容写到B文件
- 课前回顾(FileIn/OutputStream,FileWrite/Reader)
什么?你对IO还是一脸懵逼的状态,那就戳我到IO常用实例大汇总,学习一些基础知识吧~~
ps:这个常用实例大汇总目前只是在创建阶段 嘻嘻 (^__^)
什么是文件缓存流
文件缓存流包括:BufferReader和BufferWrite
缓存流增强了度写文章的能力,可以成行的读取数据,是字符输出流和输入流的一种
实例化:
BufferReader br=new BufferReader(Reader in);
BufferWrite bw=new BufferWrite(Write out);
常用方法:
BufferReader: readerLine(); 读取一行的内容
BufferWrite:write(String s); 写入一个字符串
newLine();换行写入
读取文件内容——BufferReader
String name="C:\\Users\\lenovo\\Desktop\\text\\c.txt";
File file = new File(name);
//读取数据
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
//将读取的数据赋值给string
String string =null;//到达文件的尾部读出来是空
while((string=br.readLine())!=null){
System.out.println(string);
}
//从上层流关闭到底层流
br.close();
fr.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
向文件写入内容——BufferReader
// 向文件写入数据
String[] content = { "我爱JAVA", "我爱安卓", "我爱HTML" };
String name="C:\\Users\\lenovo\\Desktop\\text\\c.txt";
File file = new File(name);
try {
FileWriter fw = new FileWriter(file, true);// 第二个参数,true追加信息,false为覆盖(会将以前文件的内容覆盖)
BufferedWriter bw = new BufferedWriter(fw);
for (String a : content) {
bw.write(a);// 写入,一次写入一个元素
bw.newLine();// 换行
}
// 上层流到底层流慢慢的关闭
bw.close();
fw.close();
System.out.println("写入成功");
} catch (IOException e) {
e.printStackTrace();
}
前方高能:实战演练!!!!
首先这里创建了两个文件c.txt,e.txt,将从c的读取的内容
写入到e,e里面啥都没有,下面是c文件的内容
//读取c文件,写向e
File fileC=new File("C:\\Users\\lenovo\\Desktop\\text\\c.txt");
File fileE=new File("C:\\Users\\lenovo\\Desktop\\text\\e.txt");
try {
FileReader fr=new FileReader(fileC);
FileWriter fw=new FileWriter(fileE);
BufferedReader br=new BufferedReader(fr);
BufferedWriter bw=new BufferedWriter(fw);
//先读取C中的数据
String str=null;
//使用while循环进行每一行的读取,边读取边写入
while((str=br.readLine())!=null){
bw.write(str);
//这里有换行千万别忘了
bw.newLine();
}
//关闭流
br.close();
bw.close();
fr.close();
fw.close();
System.out.println("写入成功");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
这里要注意,如果不加bw.newLine();效果是这样滴
没有进行换行
加上之后才会变成这样
步骤总结:
1.定义两个要操作的文件
2.实例化FileReader/Writer类
3.将FileReader/Writer的对象传入BufferReader/Writer,从而实例化缓存流对象
4.定义一个String字符串,用来存放每一次读取的数据
5.使用while循环,一行一行读,并把读取到的数据写到目标文件中
6.关闭流
今天的内容就是这些,谢谢大家的阅读,比心~再见~