日期:2014-05-20  浏览次数:20770 次

求详细解释 我自己理解的不知道对不对
import java.io.*;
class SystemoutDemo 
{
public static void main(String[] args) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt")));
String str=null;
while((str=br.readLine())!=null)
{
if(str.equals("over"))
break;
bw.write(str);
bw.newLine();
bw.flush();
}


}
}
InputStreamRead

------解决方案--------------------
package resources;

import java.io.*;

class SystemoutDemo {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//从控制台输入,并用装饰类BufferedReader修饰
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:\\out.txt")));//准备写入的文件路径,使用BufferedWriter装饰
String str = null;
while ((str = br.readLine()) != null) {
if (str.equals("over"))//如果输入的字符是“over”         break;//结束控制台输入,跳出循环
bw.write(str);//写入文件
bw.newLine();
bw.flush();
}
bw.close();//关闭输出流
br.close();//关闭输入流

}
}

------解决方案--------------------
引用:
这个我懂得 我是想问问为什么要先把字节流转换成字符流存入BufferedRead中 然后再把字符流转换成字节流存入out.txt中 

因为BufferedRead有个readLine()方法,直接读一行方便啊,还可以解决输入中文乱码的问题
存入out.txt中用的还是字节流BufferedWriter,哪转换成字节流了。。
------解决方案--------------------
引用:
这个我懂得 我是想问问为什么要先把字节流转换成字符流存入BufferedRead中 然后再把字符流转换成字节流存入out.txt中 

不使用BufferedRead,你怎么行读取?InputStreamReader有readLine方法吗?
------解决方案--------------------
其实你是使用缓冲流将基本流包装了下!
使用缓冲流的好处是,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来,而不是一个一个字节写入或者读取!