本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

IO流 文件字符流FileReader、FlieWriter

发布于2020-11-19 20:11     阅读(864)     评论(0)     点赞(13)     收藏(0)


FileReader、FileWrite

FileReader、FlieWriter用法与FileInputStream、FileOutputStream用法基本一致,区别时前者为字符IO流、后者为字节IO流

创建缓冲区复制文件

除了“读一个字符,写一个字符”的方法复制文件外,我们还可以利用缓冲区复制文件,创建一个数组暂时保存读入字符,然后将数组内容写入文件,这样复制文件效率更高!
实例

import java.io.*;

public class Test02 {
    public static void main(String[] args) throws IOException {
        File file1 = new File("D:\\test\\a\\test01.txt");  //确定读目标
        File file2 = new File("D:\\test\\a\\test02.txt");  //确定写目标

        FileReader fileReader = new FileReader(file1);   //建立 文件———》程序 IO流
        FileWriter fileWriter = new FileWriter(file2); ///建立 程序--》文件 IO流

        char[] ch = new char[4];     //创建一个字符数组作为缓冲区
        int len = fileReader.read(ch);    //读数组

        while (len!=-1){
            fileWriter.write(ch);   //数组内容全部写入
            len = fileReader.read(ch);   //下一次读取数组
        }

        fileWriter.close();   //关闭IO流
        fileReader.close();
    }
}

结果
在这里插入图片描述

可以看到结果并不是我们所预期的

原因是

在这里插入图片描述

所以上一次未被覆盖的“1”也写入了文件,所以结果为“你好,123!1”

修改后代码

import java.io.*;

public class Test02 {
    public static void main(String[] args) throws IOException {
        File file1 = new File("D:\\test\\a\\test01.txt");  //确定读目标
        File file2 = new File("D:\\test\\a\\test02.txt");  //确定写目标

        FileReader fileReader = new FileReader(file1);   //建立 文件———》程序 IO流
        FileWriter fileWriter = new FileWriter(file2); ///建立 程序--》文件 IO流

        char[] ch = new char[4];     //创建一个字符数组作为缓冲区
        int len = fileReader.read(ch);    //读数组

        while (len!=-1){     //数组内容写入
            fileWriter.write(ch,0,len); //[0,len)
            len = fileReader.read(ch);   //下一次读取数组
        }
        fileWriter.close();   //关闭IO流
        fileReader.close();
    }
}

结果为
在这里插入图片描述

原文链接:https://blog.csdn.net/weixin_45672377/article/details/109755216



所属网站分类: 技术文章 > 博客

作者:我爱java

链接:http://www.javaheidong.com/blog/article/805/a1e724508753a2d6e605/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

13 0
收藏该文
已收藏

评论内容:(最多支持255个字符)