/**
为字符流提供缓存,以达到高效读取的目的
1、加入字符缓冲流,增强读取功能(readline())
2、更高效的读取数据
FileReader:内部使用InputStreamReader(sun.nio.cs.StreamDecoder类),解码过程byte->char,默认的缓存大小8K;
BufferedReader:【字符输入流】默认缓存大小也是8K,但是可以传参指定缓存大小,把数据直接读取到缓存中,减少每次转换过程
BufferedWriter:【字符输入流】默认缓存大小也是8K,但是可以传参指定缓存大小,把数据直接先写入缓存中,减少每次转换过程
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
public class CharBufferDemo {
public static void main(String[] args) {
BufferReader();
BufferWriter();
}
//字符缓存输出流
public static void BufferReader() {
File file = new File("E:\\Java_IO\\haha.txt");
try {
Reader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
char [] chars = new char[1024];
int len = -1;
StringBuilder buf = new StringBuilder();
while((len=br.read(chars))!=-1) {
buf.append(new String(chars,0,len));
}
br.close();
//reader.close(); 关闭外层流可以不用写,try语句会帮助自动关闭
System.out.println(buf);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//字符缓存输入流
public static void BufferWriter() {
File file2 = new File("E:\\Java_IO\\haha.txt");
try {
Writer write = new FileWriter(file2,true);
BufferedWriter bw = new BufferedWriter(write);
String info = "大大吼吼";
bw.write(info);
bw.flush(); //刷新缓存流,这样写入到缓存流中的数据会自动写入到文件中;也可以不用写,try语句关闭时会自动刷新缓存流
bw.close();
//write.close(); 关闭外层流可以不用写,try语句会帮助自动关闭
} catch (IOException e) {
e.printStackTrace();
}
}
}
IO_File类使用:字符缓冲流
猜你喜欢
转载自blog.csdn.net/weixin_33696822/article/details/87073972
今日推荐
周排行