InputStreamReader:
字节流
转换为
字符流
的桥梁
OutputStreamWriter:
字符流
转换为
字节流
的桥梁
将字节流转换为字符流例子:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException{
//字节流的输入
InputStream input= System.in;
//桥梁...字节流转换为字符流
InputStreamReader isr = new InputStreamReader(input);
//高效
BufferedReader bufr = new BufferedReader(isr);
/*---------------------------------------------*/
//字节流的输出
OutputStream out = System.out;
//桥梁...字符流转换为字节流
OutputStreamWriter ous = new OutputStreamWriter(out);
//高效
BufferedWriter bufw = new BufferedWriter(ous);
String str = null;
//readLine() 读一行文字
while((str = bufr.readLine()) != null) {
if("over".equals(str)) {
break;
}
//写入
//toUpperCase() 小写转换为大写
bufw.write(str.toUpperCase());
//换行
bufw.newLine();
//刷新
bufw.flush();
}
}
}
运行:
这里不用使用关闭流
close()
方法…因为如果使用的话,后面重新创建一个流…会抛异常…因为调用系统的IO流关闭后,就不会开启了.
简单的需求: 将键盘录入的数据写入到文件中.
字节流转换为字符流 方便操作文本文件
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException{
//字节流
InputStream input = System.in;
//利用桥将字节流转换为字符流
InputStreamReader insr = new InputStreamReader(input);
//加入缓冲区提高效率
BufferedReader bufr = new BufferedReader(insr);
/*------------------------------------*/
//写入目的地
FileWriter fw = new FileWriter("test.txt");
//加入缓冲区提高效率
BufferedWriter bufw = new BufferedWriter(fw);
String str = null;
while((str = bufr.readLine()) != null) {
if("over".equals(str)) {
break;
}
//写入
bufw.write(str);
//换行
bufw.newLine();
//刷新
bufw.flush();
}
bufw.close();
}
}
运行写入文件 :
打开文本文件进行查看
想要便捷可以直接这样写
字节流与字符流相互转换流的流程图