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

★转换流功能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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值