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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 绝版坏银 中级黑马   /  2015-6-23 12:54  /  536 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.itheima_1;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.FileReader;
  7. import java.io.FileWriter;
  8. import java.io.IOException;
  9. import java.io.InputStreamReader;
  10. import java.io.OutputStreamWriter;

  11. /*
  12. * 将一个文本文件中的内容复制到另一个文件中
  13. */
  14. public class Test6 {
  15.         public static void main(String[] args) throws IOException {
  16.                 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt")));               
  17.                 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt")));
  18.                
  19.                 BufferedReader br2 = new BufferedReader(new FileReader("a.txt"));
  20.                 BufferedWriter bw2 = new BufferedWriter(new FileWriter("b.txt"));
  21.                
  22.                 String line = null;
  23.                 while((line=br.readLine())!=null){
  24.                         bw.write(line);
  25.                         bw.newLine();
  26.                         bw.flush();                       
  27.                 }
  28.                
  29.                 bw.close();
  30.                 br.close();
  31.                
  32.         }
  33. }
复制代码


里面bw 和 bw2写的方式有点不明白。求解释

2 个回复

正序浏览
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt")));
1.BufferedWriter( 第一个里面也是Writer类型的,因为转换流是是其子类 )
   这个用到了转换流,OutputStreamWriter,转换流的构造参数要用(OutputStream  ops),因为FileOutputStream是OutputStream的子类,所以可以作为参数;
BufferedWriter bw2 = new BufferedWriter(new FileWriter("b.txt"));
2.这里就是普通的缓冲流创建方式。

回复 使用道具 举报
FileOutputStread pos = new FileOutputStream("b.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);

这三句就等同于 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt")));

这有什么问题吗?你也可以把这一句拆分开来写,可以看下对应类的API中的构造函数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马