zoukankan      html  css  js  c++  java
  • java 21

    既然字节流可以复制文件,那么字符流当然也有。

    同样的思路: 

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

     1         // 封装数据源
     2         InputStreamReader isr = new InputStreamReader(new FileInputStream(
     3                 "a.txt"));
     4         // 封装目的地
     5         OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
     6                 "b.txt"));
     7 
     8         // 读写数据
     9         // 方式1
    10         // int ch = 0;
    11         // while ((ch = isr.read()) != -1) {
    12         // osw.write(ch);
    13         // }
    14 
    15         // 方式2
    16         char[] chs = new char[1024];
    17         int len = 0;
    18         while ((len = isr.read(chs)) != -1) {
    19             osw.write(chs, 0, len);
    20             // osw.flush();
    21         }
    22 
    23         // 释放资源
    24         osw.close();
    25         isr.close();

    简化:

      我们常用的编码表大都是使用本地默认的编码表,也就是GBK。所以呢,我们可以不指定编码表。

    同时,字符流的名称有些长...好长,所以呢,Java就提供了字符流的子类给我们使用:

    之前用的字符流:

      OutputStreamWriter = FileOutputStream + 编码表(GBK)

      InputStreamReader = FileInputStream + 编码表(GBK)

    使用它的子类:

      FileWriter = FileOutputStream + 编码表(GBK)

      FileReader = FileInputStream + 编码表(GBK)

    来,使用简化版重新做复制:

     1         //封装数据源
     2         FileReader fr = new FileReader("a.txt");
     3         //封装目的地
     4         FileWriter fw = new FileWriter("b.txt");
     5         
     6         //使用一次读取一个字符数组的方式来复制
     7         int len = 0;
     8         char[] ch = new char[1024];
     9         while((len = fr.read(ch)) != -1){
    10             fw.write(ch,0,len);
    11         }
    12         //释放资源
    13         fw.close();
    14         fr.close();
    15     }

      代码少了很多,简洁明了

    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    NoSQL学习之路[索引贴]
    MongoDB学习 (五):查询操作符(Query Operators).1st
    ASP.NET 设计模式 ( 组织业务逻辑层) 读书摘记4
    好慌好慌 举个栗子^
    读 VIM:七个高效编辑的习惯
    The Oauth2.0 Authorization Framework翻译part1
    关于twemproxy和redis分布式
    The Oauth2.0 Authorization Framework翻译part2
    Coin Slider jQuery插件使用方法
    Oracle数据库的三种标准的备份方法
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5926143.html
Copyright © 2011-2022 走看看