InputStreamReader
OutputStreamWriter
不同的输入输出流是为了适应不同的场景。字节字符转换流的适用场景为:数据是以字节形式在网络中传输的。对于输入流,从网络上读取二进制字节数据,然后需要将读取的字节转换为字符。对于输出流也是这样的,读取字符数据,然后将字符数据转换为字节数据,并写入到网络中。
Java
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class ReaderDemo {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("imooc.txt");
InputStreamReader isr = new InputStreamReader(fis);
FileOutputStream fos = new FileOutputStream("imooc1.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
int n = 0;
char[] cbuf = new char[10];
// while((n=isr.read())!=-1){
// System.out.print((char)n);
// }
// while((n=isr.read(cbuf))!=-1){
// String s = new String(cbuf,0,n);
// System.out.print(s);
// }
while ((n = isr.read(cbuf)) != -1) {
// String s = new String(cbuf,0,n);
osw.write(cbuf, 0, n);
osw.flush();
}
fis.close();
fos.close();
isr.close();
osw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}