public class OutputStreamWriterextends WriterOutputStreamWriter是从字符流到字节流的桥梁:
使用指定的charset将写入的字符编码为字节。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。
public class InputStreamReader
extends ReaderInputStreamReader是从字节流到字符流的桥梁:它读取字节,并使用指定的charset将其解码为字符。
它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。
------------------------------------------------------------------------------------------------------------------------
OutputStreamWriter构造方法
OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。
OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用命名字符集的OutputStreamWriter。
--------------------------------------------------------------------------------------------------------------
InputStreamReader构造方法
InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader。
InputStreamReader(InputStream in, String charsetName) 创建一个使用命名字符集的InputStreamReader。
package com.io.liushuaishuai;
import java.io.*;
import java.util.Arrays;
/*
public class OutputStreamWriterextends WriterOutputStreamWriter是从字符流到字节流的桥梁:
使用指定的charset将写入的字符编码为字节。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。
public class InputStreamReader
extends ReaderInputStreamReader是从字节流到字符流的桥梁:它读取字节,并使用指定的charset将其解码为字符。
它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。
*/
public class convertStreamDemo01 {
public static void main(String[] args) throws IOException {
/*
OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。
OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用命名字符集的OutputStreamWriter。
*/
// FileOutputStream fos = new FileOutputStream("myIOstream\fos.txt");
// OutputStreamWriter osw = new OutputStreamWriter(fos );
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("myIOstream\fos.txt"));
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("myIOstream\fos.txt"),"GBK");
osw.write("中国");
osw.close();
/*
InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader。
InputStreamReader(InputStream in, String charsetName) 创建一个使用命名字符集的InputStreamReader。
*/
InputStreamReader isr = new InputStreamReader(new FileInputStream("myIOstream\fos.txt"),"GBK");
//两种方式 一次读取一个字符数据,一次读取一个字符数组数据
//一次读取一个字符数据
/*int ch;
while ((ch = isr.read()) != -1) {
System.out.print((char) ch);
}*/
//一次读取一个字符数组
char[] chs = new char[1024];
int len;
while((len = isr.read(chs)) != -1) {
System.out.println(new String(chs,0,len));
// System.out.println(Arrays.toString(chs));//[中, 国, , , ..... ,,]
}
isr.close();
}
}