您的位置:首页 > 编程语言 > Java开发

牛客网Java刷题知识点之字节流练习之从A处复制文本文件到B处(FileReader、FileWriter )、复制文本文件的原理图解

2017-09-22 22:45 561 查看
  不多说,直接上干货!

[b]CopyTextTest.java[/b]

package zhouls.bigdata.DataFeatureSelection.test;

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

/*
* 需求:作业:将c盘的一个文本文件复制到d盘。
*
* 思路:
* 1,需要读取源,
* 2,将读到的源数据写入到目的地。
* 3,既然是操作文本数据,使用字符流。
*
*/

public class CopyTextTest {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {

//1,读取一个已有的文本文件,使用字符读取流和文件相关联。
     FileReader fr = new FileReader("a.txt");
//2,创建一个目的,用于存储读到数据。
     FileWriter fw = new FileWriter("b.txt");
//3,频繁的读写操作。
int ch = 0;
while((ch=fr.read())!=-1){
fw.write(ch);
}
//4,关闭流资源。

fw.close();
fr.close();
}
}


  还可以这样来写。

CopyTextTest.java

package zhouls.bigdata.DataFeatureSelection.test;

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

public class CopyTextTest{
private static final int BUFFER_SIZE = 1024;
/**
* @param args
*/
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
     fr = new FileReader("a.txt");
fw = new FileWriter("b.txt");

//创建一个临时容器,用于缓存读取到的字符。
char[] buf = new char[BUFFER_SIZE];//这就是缓冲区。

//定义一个变量记录读取到的字符数,(其实就是往数组里装的字符个数 )
int len = 0;

while((len=fr.read(buf))!=-1){
fw.write(buf, 0, len);//从哪里开始写,写多少个
}

} catch (Exception e) {
throw new RuntimeException("读写失败");
}finally{
if(fw!=null)
try {
fw.close();
} catch (IOException e) {

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

e.printStackTrace();
}
}
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐