字節字符轉換流
轉換流,可以將一個字節流轉換為字符流,也可以將一個字符流轉換為字節流。
OutputStreamWriter:可以將輸出的字符流轉換為字節流的輸出形式。
InputStreamReader:將輸入的字節流轉換為字符流輸入形式。
代碼實例
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.nio.charset.Charset;
public class ConvertStream {
public static void main(String[] args) throws FileNotFoundException {
InputStream in = new FileInputStream("F:/test.txt");
read(in);
OutputStream out = new FileOutputStream("F:/test.txt",true);
write(out);
}
/**
* 向文件寫數據
* @param out
*/
private static void write(OutputStream out) {
// 將字節輸出流轉換為字符輸出流
Writer writer = new OutputStreamWriter(out, Charset.defaultCharset());
try {
writer.write(" really!");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}// write
/**
* 從文件讀數據
* @param in
*/
private static void read(InputStream in) {
// 將字節流輸入流轉換為字符輸入流,並指定編碼格式
Reader reader = new InputStreamReader(in, Charset.defaultCharset());
char[] flush = new char[1024];
int len = -1;
try {
while ((len = reader.read(flush)) != -1) {
System.out.println(new String(flush, 0, len));
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
} //read
}