字節字符轉換流
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的直接子類。
不管使用字節流還是字符流,最終都是以字節的形式操作輸入輸出流的。
既然歸根結底都要用字節的形式操作,那麼只有字節流轉換字符流纔有存在的意義呀。