IO中的BufferedWriter和BufferedReader以及读取时出现乱码的问题
-
BufferedWriter作用:
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
其有哪些方法:
close() : 关闭此流,但要先刷新它。
flush() : 刷新该流的缓冲。
newLine() : 写入一个行分隔符。
write(char[] cbuf, int off, int len) : 写入字符数组的某一部分。
write(int c) : 写入单个字符。
write(String s, int off, int len) : 写入字符串的某一部分。
- 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盘是否成功创建了这个文件:
成功!!!