转换流是字符流体系的成员。
转换流是字符流和字节流之间的桥梁。
InputStreamReader:将字节流转换成字符流
OutputStreamWriter:将字符流转换成字节流
什么时候使用转换流?
当涉及到编码转换时,通常使用转换流。
示例:
需求:
使用readLine()方法完成键盘录入一行数据的读取,并输入到控制台上
分析:
readLine()方法是字符流BufferedReader类中的方法,而键盘录入的read()方法是字节流InputStream的方法,此时就要用到转换流。
class StreamTrans{
public static voidmain(String args[]) throw IOException{
BufferedReader bufr = newBufferedReader(new InputStreamReader(
System.in));
BufferedWriter bufw = new BufferedWriter(newOutputStreamWriter(
System.out));
String line = null;
while((line=bufr.readLine())!=null){
if("over".equals(line))
break;
bufw.write(line.toUpperCase());
bufw.newLine();
bufw.flush();
}
bufw.close();
bufr.close();
}
}
键盘录入数据,当录入数据后,就将该行数据进行打印,如果录入的数据是over,那么停止录入。
class ReadIn{
public static voidmain(){
InputStream in = System.in;
StringBuilder sb = new StringBuilder();
while(true){
int ch = in.read();
if(ch=='\r')
continue;
if(ch=='\n'){
String s = sb.toString();
if("over".equals(s))
break;
System.out.println(s.toUpperCase());
sb.delete(0,sb.length());
}else{
sb.append((char)ch);
}
}
}
}