字节字符转换流
OutputStreamWriter 是Writer的子类,将输出的字符流变为字节流。程序到硬盘。
InputStreamReader是Reader的子类,将输入的字节流变为字符流。硬盘到程序。
不过也可以把输出的字节流转换为字符流
把输入的字符流变字节流。
-------->OutputStreamWriter
public OutputStreamWriter(OutputStream out)
字节输出转字符输出:
import java.io.File;
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.io.Writer;
public class TestJava{
}
class Demo{
public static void main(String[] args) throws Exception{
File fileTrans = new File("C:"+File.separator+"JavaStudy"+File.separator+
"JavaIO"+File.separator+"test05.txt");
Writer bcTrans = new OutputStreamWriter(new FileOutputStream(fileTrans));
bcTrans.write("Hello World!");
bcTrans.close();
}
}//Demo
在文件test05上存入Hello World!
字节输入转字符输入:
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.Reader;
public class TestJava{
}
class Demo{
public static void main(String[] args) throws Exception{
File fileTrans = new File("C:"+File.separator+"JavaStudy"+File.separator+
"JavaIO"+File.separator+"test05.txt");
Reader irTrans = new InputStreamReader(new FileInputStream(fileTrans));
char[] cReady = new char[1024];
int lenReady = irTrans.read(cReady);
irTrans.close();
System.out.println("Content:\n"+new String(cReady,0,lenReady));
}//main
}
output:
Content:
Hello World!
FileWriter并不是Writer的直接子类,而是OutputStreamWriter的直接子类。
FileReader也是InputStreamReader的直接子类。
不管使用字节流还是字符流,最终都是以字节的形式操作输入输出流的。
既然归根结底都要用字节的形式操作,那么只有字节流转换字符流才有存在的意义呀。