Java基础知识强化之IO流笔记43:IO流练习之 复制文本文件的 5 种方式案例

 1. 案例分析:

分析:

  复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流。

  通过该原理,我们知道我们应该采用字符流更方便一些。

  而字符流有5种方式,所以做这个题目我们有5种方式。推荐掌握第5种。

数据源
  c:\\a.txt -- FileReader -- BufferdReader
目的地
  d:\\b.txt -- FileWriter -- BufferedWriter

 

2. 复制文本文件的 5 种方式代码示例:

  1 package cn.itcast_01;
  2 
  3 import java.io.BufferedReader;
  4 import java.io.BufferedWriter;
  5 import java.io.FileReader;
  6 import java.io.FileWriter;
  7 import java.io.IOException;
  8 
  9 /*
 10  * 复制文本文件
 11  * 
 12  * 分析:
 13  *         复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流。
 14  *         通过该原理,我们知道我们应该采用字符流更方便一些。
 15  *         而字符流有5种方式,所以做这个题目我们有5种方式。推荐掌握第5种 16  * 数据源 17  *         c:\\a.txt -- FileReader -- BufferdReader
 18  * 目的地 19  *         d:\\b.txt -- FileWriter -- BufferedWriter
 20  */
 21 public class CopyFileDemo {
 22     public static void main(String[] args) throws IOException {
 23         String srcString = "c:\\a.txt";
 24         String destString = "d:\\b.txt";
 25         // method1(srcString, destString);
 26         // method2(srcString, destString);
 27         // method3(srcString, destString);
 28         // method4(srcString, destString);
 29         method5(srcString, destString);
 30     }
 31 
 32     // 字符缓冲流一次读写一个字符串
 33     private static void method5(String srcString, String destString)
 34             throws IOException {
 35         BufferedReader br = new BufferedReader(new FileReader(srcString));
 36         BufferedWriter bw = new BufferedWriter(new FileWriter(destString));
 37 
 38         String line = null;
 39         while ((line = br.readLine()) != null) {
 40             bw.write(line);
 41             bw.newLine();
 42             bw.flush();
 43         }
 44 
 45         bw.close();
 46         br.close();
 47     }
 48 
 49     // 字符缓冲流一次读写一个字符数组
 50     private static void method4(String srcString, String destString)
 51             throws IOException {
 52         BufferedReader br = new BufferedReader(new FileReader(srcString));
 53         BufferedWriter bw = new BufferedWriter(new FileWriter(destString));
 54 
 55         char[] chs = new char[1024];
 56         int len = 0;
 57         while ((len = br.read(chs)) != -1) {
 58             bw.write(chs, 0, len);
 59         }
 60 
 61         bw.close();
 62         br.close();
 63     }
 64 
 65     // 字符缓冲流一次读写一个字符
 66     private static void method3(String srcString, String destString)
 67             throws IOException {
 68         BufferedReader br = new BufferedReader(new FileReader(srcString));
 69         BufferedWriter bw = new BufferedWriter(new FileWriter(destString));
 70 
 71         int ch = 0;
 72         while ((ch = br.read()) != -1) {
 73             bw.write(ch);
 74         }
 75 
 76         bw.close();
 77         br.close();
 78     }
 79 
 80     // 基本字符流一次读写一个字符数组
 81     private static void method2(String srcString, String destString)
 82             throws IOException {
 83         FileReader fr = new FileReader(srcString);
 84         FileWriter fw = new FileWriter(destString);
 85 
 86         char[] chs = new char[1024];
 87         int len = 0;
 88         while ((len = fr.read(chs)) != -1) {
 89             fw.write(chs, 0, len);
 90         }
 91 
 92         fw.close();
 93         fr.close();
 94     }
 95 
 96     // 基本字符流一次读写一个字符
 97     private static void method1(String srcString, String destString)
 98             throws IOException {
 99         FileReader fr = new FileReader(srcString);
100         FileWriter fw = new FileWriter(destString);
101 
102         int ch = 0;
103         while ((ch = fr.read()) != -1) {
104             fw.write(ch);
105         }
106 
107         fw.close();
108         fr.close();
109     }
110 }

 

posted on 2015-10-11 12:52  鸿钧老祖  阅读(177)  评论(0编辑  收藏  举报

导航