A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© marcojam 中级黑马   /  2015-8-8 11:26  /  458 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 marcojam 于 2015-8-8 11:56 编辑

第一次发帖,之前都没做笔记。
字符流是用于文本操作的类,字符流= 节流+编码表,相当于是通过转换流将字节流转换成字符流

  1. package 字符流复制文本5种方式;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.FileReader;
  5. import java.io.FileWriter;
  6. import java.io.IOException;

  7. public class FiveCopyStream {

  8.         public static void main(String[] args) throws IOException {
  9.                 // TODO 自动生成的方法存根
  10.                 // 方式一:基本字符复制
  11.                 FileReader fr = new FileReader("e:\\ArrayListDemo.java");
  12.                 FileWriter fw = new FileWriter("f:\\ArrayListDemo.java");
  13.                 int b = 0;
  14.                 while ((b = fr.read()) != -1) {
  15.                         fw.write(b);
  16.                 }
  17.                 fw.close();
  18.                 fr.close();
  19.                 // 方式二:基本字符数组流
  20.                 FileReader fr1 = new FileReader("e:\\ArrayListDemo.java");
  21.                 FileWriter fw1 = new FileWriter("f:\\ArrayListDemo1.java");
  22.                 int c = 0;
  23.                 char[] ch = new char[1024];
  24.                 while ((c = fr1.read(ch)) != -1) {
  25.                         fw1.write(ch, 0, c);
  26.                 }
  27.                 fw1.close();
  28.                 fr1.close();
  29.                 // 方式三:高效缓冲基本字符流
  30.                 BufferedReader br = new BufferedReader(new FileReader(
  31.                                 "e:\\ArrayListDemo.java"));
  32.                 BufferedWriter bw = new BufferedWriter(new FileWriter(
  33.                                 "f:\\ArrayListDemo2.java"));
  34.                 int d = 0;
  35.                 while ((d = br.read()) != -1) {
  36.                         bw.write(d);
  37.                 }
  38.                 bw.close();
  39.                 br.close();
  40.                 //方式四:高效缓冲字符数组流
  41.                 BufferedReader br1 = new BufferedReader(new FileReader(
  42.                                 "e:\\ArrayListDemo.java"));
  43.                 BufferedWriter bw1 = new BufferedWriter(new FileWriter(
  44.                                 "f:\\ArrayListDemo3.java"));
  45.                 int e = 0;
  46.                 char[] ch1 = new char[1024];
  47.                 while((e = br1.read(ch1))!=-1){
  48.                         bw1.write(ch1, 0, e);
  49.                 }
  50.                 bw1.close();
  51.                 br1.close();
  52.                 //方式五:高效缓冲行读取
  53.                 BufferedReader br2 = new BufferedReader(new FileReader(
  54.                                 "e:\\ArrayListDemo.java"));
  55.                 BufferedWriter bw2 = new BufferedWriter(new FileWriter(
  56.                                 "f:\\ArrayListDemo4.java"));
  57.                 String s = null;
  58.                 while((s = br2.readLine())!=null){
  59.                         bw2.write(s);
  60.                         bw2.newLine();
  61.                         bw2.flush();
  62.                 }
  63.                 bw2.close();
  64.                 br2.close();
  65.         }

  66. }
复制代码

1 个回复

倒序浏览
原来非缓冲方式还可以分为字符读和字符数组读
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马