zoukankan      html  css  js  c++  java
  • Java基础知识强化之IO流笔记37:FileReader/FileWriter(转换流的子类)复制文本文件案例

    1. 转换流的简化写法:

    由于我们常见的操作都是使用本地默认编码,所以,不用指定编码。
    而转换流的名称有点长,所以,Java就提供了其子类供我们使用:FileReader FileWriter
    OutputStreamWriter = FileOutputStream + 编码表(GBK)
    FileWriter = FileOutputStream + 编码表(GBK)

    InputStreamReader = FileInputStream + 编码表(GBK)
    FileReader = FileInputStream + 编码表(GBK)

    2.  FileReader / FileWriter两者的构造方法:

    (1)FileReader的构造方法

    构造方法摘要
    FileReader(File file)
              在给定从中读取数据的 File 的情况下创建一个新 FileReader
    FileReader(FileDescriptor fd)
              在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader
    FileReader(String fileName)
              在给定从中读取数据的文件名的情况下创建一个新 FileReader

    (2)FileWriter的构造方法

    构造方法摘要
    FileWriter(File file)
              根据给定的 File 对象构造一个 FileWriter 对象。
    FileWriter(File file, boolean append)
              根据给定的 File 对象构造一个 FileWriter 对象。
    FileWriter(FileDescriptor fd)
              构造与某个文件描述符相关联的 FileWriter 对象。
    FileWriter(String fileName)
              根据给定的文件名构造一个 FileWriter 对象。
    FileWriter(String fileName, boolean append)
              根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。


    3. 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中

     数据源:
       a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader -- FileReader
     目的地:
       b.txt -- 写出数据 -- 字符转换流 -- OutputStreamWriter -- FileWriter

    4. 代码示例:

     1 package cn.itcast_04;
     2 
     3 import java.io.FileReader;
     4 import java.io.FileWriter;
     5 import java.io.IOException;
     6 
     7 /*
     8  * 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中
     9  * 
    10  * 数据源:
    11  *         a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader -- FileReader
    12  * 目的地:
    13  *         b.txt -- 写出数据 -- 字符转换流 -- OutputStreamWriter -- FileWriter
    14  */
    15 public class CopyFileDemo2 {
    16     public static void main(String[] args) throws IOException {
    17         // 封装数据源
    18         FileReader fr = new FileReader("a.txt");
    19         // 封装目的地
    20         FileWriter fw = new FileWriter("b.txt");
    21 
    22         // 一次一个字符
    23         // int ch = 0;
    24         // while ((ch = fr.read()) != -1) {
    25         // fw.write(ch);
    26         // }
    27 
    28         // 一次一个字符数组
    29         char[] chs = new char[1024];
    30         int len = 0;
    31         while ((len = fr.read(chs)) != -1) {
    32             fw.write(chs, 0, len);
    33             fw.flush();
    34         }
    35 
    36         // 释放资源
    37         fw.close();
    38         fr.close();
    39     }
    40 }

     运行结果,如下:

  • 相关阅读:
    接口测试
    JMeter 插件管理
    JMeter IP欺骗压测
    Maven初窥门径
    都是分号惹的祸 ORA-00911
    插拔式设计思想
    第七章、Ajango自带auth模块
    第七章、中间件续写
    第七章、中间件
    第六章、Cookies和Session
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4868764.html
Copyright © 2011-2022 走看看