例子1:字符流写数据
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
/*
* OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流
* OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流
* 把字节流转换为字符流。
* 字符流 = 字节流 +编码表。
*/
public classOutputStreamWriterDemo {
public static void main(String[] args) throws IOException {
// 创建对象
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
"osw.txt")); // 默认GBK
// OutputStreamWriter osw = newOutputStreamWriter(new FileOutputStream(
// "osw.txt"), "GBK"); // 指定GBK
// OutputStreamWriterosw = new OutputStreamWriter(new FileOutputStream(
// "osw.txt"),"UTF-8"); // 指定UTF-8
// 写数据
osw.write("中国");
// 释放资源
osw.close();
}
}
运行结果:
中国
例子2:字符流一次读取一个字符
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/*
* InputStreamReader(InputStream is):用默认的编码读取数据
* InputStreamReader(InputStream is,StringcharsetName):用指定的编码读取数据
*/
public classInputStreamReaderDemo {
public static void main(String[] args) throws IOException {
// 创建对象
// InputStreamReader isr = newInputStreamReader(new FileInputStream(
// "osw.txt"));
InputStreamReader isr = new InputStreamReader(new FileInputStream(
"osw.txt"), "GBK");
// InputStreamReaderisr = new InputStreamReader(new FileInputStream(
// "osw.txt"),"UTF-8");
// 读取数据
// 一次读取一个字符
int ch = 0;
while ((ch = isr.read()) !=-1) {
System.out.print((char) ch);
}
// 释放资源
isr.close();
}
}