发布于2020-11-19 20:11 阅读(864) 评论(0) 点赞(13) 收藏(0)
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黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!