package New_IO;
import java.io.*;
/**
-
转换流
-
可以把字节流转换为字符流
-
当字节流中的数据都是字符的时候,使用转换流转为字符流处理效率更高
*/
public class Test3 {
public static void main(String[] args) {
//所有的文件都是有编码格式
//对于我们来说,IxI和java文件-般来讲有 三种编码
//IS08859-1,西欧编码,是纯粹英文编码,不适应汉字
//GBK和UTF-8,这两编码是适用于中文和英文
//我们一般使用UTF-8编码
try {
// Test3.testInputStreamReader(“F:\Java_project_new\src\New_IO\tt3.txt”);
Test3.testOutputStreamWriter(“F:\Java_project_new\src\New_IO\tt4.txt”);
} catch (Exception e) {
e.printStackTrace();
}}
/**
- 转换字节输入流为字符输入流 InputStreamReader
*/
//注意,在转换字符流的时候,设置的字符集编码要与读取的文件的数据的编码一致
// 不然就会出现乱码
public static void testInputStreamReader(String input) throws Exception{
//把字节流转换为字符流
//参数1是字节流,参数2是编码
InputStreamReader in = new InputStreamReader( new FileInputStream(input),“UTF-8”);
char [] c = new char[100];
int len = 0 ;
while ((len=in.read©) !=-1){
System.out.println(new String(c,0,len));
}
in.close();
}/**
- 转换字节输出流为字符输出流OutputStreamWriter
- @param output
*/
public static void testOutputStreamWriter(String output) throws Exception{
OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream(output),“UTF-8”);
String str=“Don’t let your past determine the future.\n” +
“别让你的过去决定你的未来。”;
ow.write(str);
ow.flush();
ow.close();
}
} - 转换字节输入流为字符输入流 InputStreamReader