牛客网Java刷题知识点之字节流练习之从A处复制文本文件到B处(FileReader、FileWriter )、复制文本文件的原理图解
不多说,直接上干货!
CopyTextTest.java
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(); } } } }
作者:大数据和人工智能躺过的坑
出处:http://www.cnblogs.com/zlslch/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【好文要顶】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!