/**
为字符流提供缓存,以达到高效读取的目的
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语句关闭时会自动刷新缓存流;且刷新反放flush()只在输出缓存流中才有实现
bw.close();
//write.close(); 关闭外层流可以不用写,try语句会帮助自动关闭
} catch (IOException e) {
e.printStackTrace();
}
}
}
IO_File类使用:字符缓冲流
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...