其他分享
首页 > 其他分享> > IO流(四)FileReader、FileWriter

IO流(四)FileReader、FileWriter

作者:互联网

一、FileReader

1.1FileReader读入数据的基本操作

1.1.1实现步骤

  1. File类的实例化,指明要读取的文件。
  2. 提供具体的流,实例化FileReader流。
  3. 数据读入。
  4. 流的关闭操作。

1.1.2注意点

    @Test
    public void testFileReader() {
        FileReader fr = null;
        try {
            //1.实例化file对象,指明要操作的文件
            File file = new File("hello.txt");//相较于当前module
            //2.提供具体的流
            fr = new FileReader(file);

            //3.数据的读入
            //read():返回读入的一个字符。如果达到文件末尾,返回-1
            int data;
            while ((data = fr.read()) != -1) {
                System.out.print((char) data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //4.流的关闭操作
            try {
                if (fr != null) {
                    fr.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

1.2FileReader中使用read(char[] cbuf)

1.2.1实现步骤

整体实现过程,同上。

1.2.2注意点

    //对read()操作升级:使用read的重载方法
    @Test
    public void testFileReader1() {
        FileReader fr = null;
        try {
            //1.实例化file对象
            File file = new File("hello.txt");
            //2.提供具体的流
            fr = new FileReader(file);
            //3.数据的读入
            //read(char cbuf[]) :返回每次读入cbuf数组中的字符的个数。如果达到文件末尾,返回-1。
            char[] cbuffer = new char[5];
            int len;
            while ((len = fr.read(cbuffer)) != -1) {
                //方式一:遍历数组
                for (int i = 0; i < len; i++) {
                    System.out.print(cbuffer[i]);
                }

                //方式二:char数组转String
                String str =new String(cbuffer,0,len);
                System.out.print(str);

            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //4.资源的关闭
            try {
                if (fr != null) {
                    fr.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }


二、FileWriter

2.1FileWriter写出数据的操作

2.1.1实现步骤

  1. File类的实例化,指明要写出的文件。
  2. 提供具体的流,实例化FileWriter流。
  3. 数据写出。
  4. 流的关闭操作。

2.1.2注意点

    /**
     * 从内存中写数据到硬盘文件里
     */
    @Test
    public void testFileWriter() {
        FileWriter fw = null;
        try {
            //1.提供File类的对象,指明要导出的文件
            File file = new File("hello1.txt");
            //2.提供流的对象
            fw = new FileWriter(file, false);

            //3.导出数据
            fw.write("I have a dream!\n");
            fw.write("you need a dream!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //4.关闭流资源
            try {
                if (fw != null) {
                    fw.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

三、使用FileReader和FileWriter实现文本文件的复制

    @Test
    public void testFileReaderFileWriter() {
        FileReader fr = null;
        FileWriter fw = null;

        try {
            //1.提供File类的对象,指明读入和写出的文件
            File srcFile = new File("hello.txt");
            File destFile = new File("hello1.txt");

            //2.提供流的对象
            fr = new FileReader(srcFile);
            fw = new FileWriter(destFile);

            //3.读入、写出数据
            char[] cbuf = new char[5];
            int len;
            while ((len = fr.read(cbuf)) != -1) {
                fw.write(cbuf, 0, len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //4.关闭流资源
            try {
                if (fr != null)
                    fr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                if (fw != null)
                    fw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

标签:fr,IO,read,FileReader,File,FileWriter,new
来源: https://blog.csdn.net/qq_33491651/article/details/123218198