文件字符流

文件字符流

  • 创建一个临时存放数据的数组使用 char 数组

文件字符输入流(FileReader)

读取文件操作步骤:

  1. 建议一个流对象,将已存在的一个文件架在进流中

    FileReader fr = new FileReader("Test.txt");
    
  2. 创建一个临时存放数据的数组

    char[] ch = new char[1024];
    
  3. 调用流对象的读取方法,将流中的数据读入到数组中

    fr.read(ch);
    
public class Reader {
    /**
     * 文件字符输入流
     * @param inPath 文件路径
     */
    public static void fileReader(String inPath) {
        try {
            //创建字符输入流的对象
            FileReader fr = new FileReader(inPath);
            //创建临时存放数据的字符数组
            char[] ch = new char[50];
            //定义一个输入流的长度
            int len = 0;
            while ((len = fr.read(ch)) != -1) {
                System.out.println(new String(ch, 0, len));
            }
            //关闭流
            fr.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Reader.fileReader("D:\\JAVA\\Java 基础入门\\IO 流\\test\\t1.txt");
    }
}

文件字符输出流(FileWriter)

public class Writer {
    /**
     * 文件字符输出流 FileWriter
     * @param txt 输出的内容
     * @param outPath 输出的文件
     */
    public static void fileWriter(String text,String outPath) {
        try {
            FileWriter fw = new FileWriter(outPath);
            //将数据写到内存中
            fw.write(text);
            //将内存中的数据刷到硬盘中
            fw.flush();
            //关闭流
            fw.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Writer.fileWriter("hello,world!","D:\\JAVA\\Java 基础入门\\IO 流\\test\\t2.txt");
        Reader.fileReader("D:\\JAVA\\Java 基础入门\\IO 流\\test\\t2.txt");
    }
}

字符流拷贝文件

  • 只能拷贝文本文档
public class Copy {
    /**
     * 字符流完成拷贝文件,只能拷贝文本文档
     * @param inPath 源文件路径
     * @param outPath 拷贝到某个地方的文件路径
     */
    public static void fileCopy(String inPath,String outPath) {
        try {
            FileReader fr = new FileReader(inPath);
            FileWriter fw = new FileWriter(outPath);
            //临时存放数据的字符数组
            char[] ch = new char[100];
            //定义输入流的长度
            int len = 0;
            //边读取边写入数据到内存
            while ((len = fr.read(ch)) != -1) {
                //第一个参数是缓冲字符串数组
                //第二个是从哪里开始
                //第三个是字符的总长度
                fw.write(ch, 0, len);
            }
            //将内存中的数据刷写到硬盘
            fw.flush();
            //关闭流
            fw.close();
            fr.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Copy.fileCopy("D:\\JAVA\\Java 基础入门\\IO 流\\test\\t2.txt",
                "D:\\JAVA\\Java 基础入门\\IO 流\\test\\demo\\t2.txt");
    }
}

注意

  • 定义文件路径时,要用 “ / ” 或者 “ \\ ”
  • 在写入一个文件时,如果目录下有同名文件将被覆盖
  • 在读取文件时,必须保证被读取的文件已存在,否则会异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值