zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    判断安卓或是IOS
    安卓、IOS内嵌H5的相互通信
    原生js tab选项卡粗略封装
    关于抓包
    vue学习的第一天——vue-router的相关使用
    关于jQuery插件封装的总结
    mvc生成静态页
    C#调用java代码
    汉字转16进制,汉字转10进制
    Model 类型为dynamic或者list<dynamic>
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4869108.html
Copyright © 2011-2022 走看看