4、实例演示:
package com.chy.io.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
public class InputStreamReaderTest {
private static File file = new File("D:" + File.separator + "osw.txt");
private static FileInputStream fis;
static{
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void testISRDefaultEncoder()throws IOException{
//使用默认编码读取文件中的第一“威尔杰克逊”
InputStreamReader isrDefault = new InputStreamReader(fis);
BufferedReader bisDefault = new BufferedReader(isrDefault);
System.out.println("isr encoding : " + isrDefault.getEncoding() + "======str: " + bisDefault.readLine());
bisDefault.close();
}
public static void testISRGBK() throws IOException{
//使用GBK读取第一个“威尔杰克逊”
InputStreamReader isrGBK = new InputStreamReader(fis, "GBK");
BufferedReader bisGBK = new BufferedReader(isrGBK);
System.out.println("isr encoding : " + isrGBK.getEncoding() + "=====str: " + bisGBK.readLine());
bisGBK.close();
}
public static void testISRUTF8() throws IOException{
//使用UTF-8读取文件中的第一个“威尔杰克逊”
InputStreamReader isrUFT8 = new InputStreamReader(fis, "UTF-8");
BufferedReader bisUFT8 = new BufferedReader(isrUFT8);
System.out.println("isr encoding : " + isrUFT8.getEncoding() + "=====str: " + bisUFT8.readLine());
bisUFT8.close();
}
public static void main(String[] args) throws IOException{
testISRDefaultEncoder();
//testISRGBK();
//testISRUTF8();
}
}
总结:
OutputStreamWriter、InputStreamReader分别为InputStream、OutputStream的低级输入输出流提供将字节转换成字符的桥梁、他们只是外边的一个门面、真正的核心