IO中的BufferedWriter和BufferedReader以及读取时出现乱码的问题

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();

    }

    }

运行结果:

IO中的BufferedWriter和BufferedReader以及读取时出现乱码的问题_第1张图片


去E盘查看是否有创建了这个文件:

可以看到,我们已经成功创建了这个文件!!!

你可能感兴趣的:(IO中的BufferedWriter和BufferedReader以及读取时出现乱码的问题)