IO中的BufferedWriter和BufferedReade
IO中的BufferedWriter和BufferedReader以及读取时出现乱码的问题
1. BufferedWriter作用:
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
其有哪些方法:
close() : 关闭此流,但要先刷新它。
flush() : 刷新该流的缓冲。
newLine() : 写入一个行分隔符。
write(char[] cbuf, int off, int len) : 写入字符数组的某一部分。
write(int c) : 写入单个字符。
write(String s, int off, int len) : 写入字符串的某一部分。
2. BufferedReader作用:
读取文本文件 ,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。
实战代码:
public class Test{
public static void main(String[] args) throws Exception{
//BufferedWriter将字符写入到文件中
FileWriter fw =new FileWriter("E:\\Buffered.txt");//创建一个文件
BufferedWriter bufw =new BufferedWriter(fw);
bufw.write("hello world");
bufw.newLine(); //作用是换行
bufw.write("this is test");
bufw.newLine();
bufw.write("你好,这里是测试!");
bufw.flush();
bufw.close();
//读取文件,然后进行转码,防止出现乱码的问题
InputStreamReader isr =new InputStreamReader(new FileInputStream("E:\\Buffered.txt"), "UTF-8");
//创建字符缓冲输入流对象
BufferedReader br =new BufferedReader(isr);
//读数据
//一次读取一个字符数组
char[] chs =new char[1024];
int len =0;
while ((len = br.read(chs)) != -1) {
System.out.println(new String(chs, 0, len));
}
//释放资源
br.close();
}
}
运行结果:
去E盘查看是否有创建了这个文件:
可以看到,我们已经成功创建了这个文件!!!