转换流

inputstreamreader是把input stream转换成reader

soutputstreamwriter是把outputstream转换成writer

存在将字节流转换成字符流的转换流,因为字符流操作文本更简单,反之则不存在,因为没必要

system.in是标准输入,即键盘输入,是input stream的实例

 

package com.study02;

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.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

 

/*
* 任务需求:从键盘获取数据,写入磁盘
*/

public class transform {
public static void main(String[] args) {


BufferedReader br = null;
BufferedWriter bw = null;
try {
//数据源时标准输入设备,键盘system.in
InputStream is = System.in;
//使用转换流,转换成字符流
InputStreamReader isr = new InputStreamReader(is,"UTF-8");

//提高读写效率
br = new BufferedReader(isr);

bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("ddd.txt"),"UTF-8"));
//写入磁盘文件

String str = null;
while(!"over".equals((str=br.readLine()))) {
bw.write(str);
bw.newLine();
bw.flush();
}




} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//关闭

try {
if (bw!=null) {
bw.close();
}

if (br!=null) {
br.close();
}


} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}

}
}

posted @ 2019-11-10 17:09  Princess1  阅读(131)  评论(0编辑  收藏  举报