您的位置:首页 > 编程语言 > Java开发

java---转换流1(InputStreamReader和OutputStreamWriter)

2016-04-26 21:10 555 查看
★转换流功能1:充当字节流与字符流之间的桥梁

需求:模拟英文聊天程序,要求:

     (1) 从键盘录入英文字符,每录一行就把它转成大写输出到控制台;

     (2) 保存聊天记录到字节流文件。

 要求1的设计分析:

1)需要从键盘接收录入,得用System.in,它是字节输入流InputStream;

2)需要处理字符,可以自己把字节强转成字符,也可以用字符流;

3)需要类似readLine的功能,而这

package ThreadIO2_1.IO.transfer;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class TranStreamDemo {
public static void main(String[] args) throws IOException {
/**
* 输入
*/
InputStream in=System.in;
InputStreamReader isr=new InputStreamReader(in);
BufferedReader br=new BufferedReader(isr);
/**
* 输出
*/
OutputStream out=new FileOutputStream("chat.txt");
OutputStreamWriter osw=new OutputStreamWriter(out);
BufferedWriter bw=new BufferedWriter(osw);

String line=null;
while((line=br.readLine())!=null){
if("over".equals(line)){
/**
* 养成好的代码习惯:调用String中的方法时,
* 把常量字符串放在前面,防止变量为null而导致异常
*/
break;
}
System.out.println(line.toUpperCase());//换成大写
bw.write(line);
bw.newLine();
bw.flush();
}
}
}



个方法在字符流BufferedReade

r中有(而且该类有缓冲增速)。

综上,采用转换流把字节流转成 要求2的设计分析:字符流处理比较合理,即使用InputStreamReader

 要求2的设计分析:

1)需要把字符数据按行保存到字节流文件 ;

2)字符流采用BufferedWriter比较合适,因为它有newLine方法且能实现高效;

3)字节流文件,得采用FileOutputStream。

综上,采用转换流把字符流转成字节流处理比较合理,即使用OutputStreamWriter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: