FileReader与FileWriter

FileReader(文件字符输入流)

  • 只能读取普通文本
  • 读取文本内容时,比较方便
  • 与FileInputStream读取文本时的不同是把数组换成char[ ]数组

1.构造方法:

FileReader(File file) 创建一个新的 FileReader ,给出 File读取。
FileReader(FileDescriptor fd) 创建一个新的FileReader,给定 FileDescriptor读取
FileReader(String fileName) 创建一个新的 FileReader,给定要读取的文件的名称。

2.代码示例:

import java.io.FileReader;
import java.io.IOException;

public class FileReaderTest {
    public static void main(String[] args) {
        FileReader reader=null;

        {
            try {
                reader = new FileReader("D://JAVATest//test");
                //准备一个char数组
                char[] chars = new char[4];//一次读取四个字符
                int readCount=0;
                //按照字符的方式读取
                while ((readCount=reader.read(chars))!=-1){
                    System.out.print(new String(chars,0,readCount));
                }

            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    }

输出:

ABCabc

FileWriter(文件字符输出流)

1.构造方法:

FileReader(File file) 创建一个新的 FileReader ,给出 File读取。
FileReader(FileDescriptor fd) 创建一个新的 FileReader ,给定 FileDescriptor读取
FileReader(String fileName) 创建一个新的 FileReader,给定要读取的文件的名称。

2.代码示例

import java.io.FileWriter;
import java.io.IOException;

public class FileWriterTest {
    public static void main(String[] args) {
        FileWriter out=null;
        try {
            out = new FileWriter("D:/JAVATest/filewrite");

            char[] chars={'我','最','爱','学','习','了'};
            out.write(chars);
            out.write("\n");
            //写入部分数组
            //荣下标3开始,写入3个字符
            out.write(chars,3,3);
            out.write("\n");
            out.write("没有对象不会new一个吗");
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

输出:

同理,要是写入的路径上没有文件的话会创建文件!

FileReader与FileWriter执行拷贝

  • 只能拷贝普通文本文件
  • 利用fileReader与Filewriiter文件进行读和写
  • 一边读一边写
  • java文件也是普通文本文件
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CopyTest02 {
    public static void main(String[] args) {
        FileReader fr=null;
        FileWriter fw=null;
        try {
           //创建一个输入流
            fr = new FileReader("D:/JAVATest/filewrite");
            //创建一个输出流
            fw = new FileWriter("D:/JAVATest/copy02");
            char[] chars=new char[6];
            int readCount=0;
            while ((readCount=fr.read(chars))!=-1){
                fw.write(chars);
            }
            fw.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (fr != null) {
                try {
                    fr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fw != null) {
                try {
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

输出;

posted @ 2022-07-22 17:00  星余明  阅读(39)  评论(0编辑  收藏  举报