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 }

     运行结果,如下:

  • 相关阅读:
    Python基础04 字典基本操作
    Python基础03 列表、元组基本操作
    Python基础02 字符串基本操作
    Python基础07 函数作用域、嵌套函数、闭包函数、高阶函数及装饰器的理解
    Python随机数random模块学习,并实现生成6位验证码
    Python与时间相关的time、datetime模块的使用
    Python PIL库安装
    Python中可变对象和不可变对象
    Mac环境下Docker及Splash的安装运行教程
    redis 链表(list)操作
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4868764.html
Copyright © 2011-2022 走看看