java基础 关于转换流

转换流有两种:InputStreamReader:将字节流转换为字符流 OutputStreamWriter:将字符流转换为字节流 什么时候使用转换流?由以下分析: 流对象很多,首先要明确那个流对象。 通过三点来完成: 1、明确源和目的 源:输入流。InputStream Reader 目的:输出流。 OutputStream Writer 2、操作的数据是否是纯文本。 是:字符流 否:字节流 3、当体系明确后,再明确要使用哪个具体的对象。 通过设备来进行区分: 源设备:内存,硬盘,键盘 目的设备:内存,硬盘,控制台 用一个例子简单的说明: 将键盘录入的数据保存到一个文件中,输入“over”时表示录入结束。 详细分析: 源:从InputStream Reader中选择; 因为是键盘录入的是纯文本,所以使用Reader. 设备:键盘,所以用System.in; 发现System.in是字节流的操作,与Reader(字符流)矛盾,这时就要用到转换流 InputStreamReader 为了提高操作效率,使用缓冲技术,选择BufferedReader 目的:从 OutputStream Writer中选择 因为是文本文件,所以选择Writer, 设备:硬盘上,一个文件,选择FileWriter 为了提高操作效率,使用缓冲技术,选择BufferedWriter import java.io.*; class ReadinFile { public static void main(String[] args)throws IOException //这里问了方便阅读。先不做异常处理 { BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); //将字节流转换为字符流 BufferedWriter bufw=new BufferedWriter(new FileWriter("readin.txt")); String line=null; while((line=bufr.readLine())!=null) { if("over".equals(line)) break; bufw.write(line); bufw.newLine(); } bufw.close(); bufr.close(); } }
posted @ 2016-08-11 08:59  有忆  阅读(1932)  评论(0编辑  收藏  举报