package IO流_转换流_字节转为字符_乱码分析_编码与解码字符集;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
/**
- 二.转换流:字节流转换为字符流
- 1.输出流:OutputStreamWriter 编码
- 2.输入流:InputStreamReader 解码
*/
public class ConverDemo02 {
public static void main(String[] args) throws IOException {
/*BufferedReader br = new BufferedReader(
new FileReader(new File("E:/xp/test/临时.txt")));
*/
/**读取 'new FileReader(new File("E:/xp/test/临时.txt"))'时无法指定解码字符集
* 所以只能在底层使用字节流;字节流(FileInputStream)可以解码,字符流不可以;改成FileInputStream
* 但字节流与字符流不能直接转换;所以使用转换流InputStreamReader
*
*/
//指定解码字符集
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(new File("E:/xp/test/临时.txt")),"UTF-8"));//处理异常
//写出文件
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("E:/xp/test/转换练习.txt",false)));//覆盖
//读取
String info = null;
while(null !=(info=br.readLine())){//处理异常;这里不能使用多态
System.out.println(info);
bw.write(info+"\r\n");;
}
bw.close();
br.close();//关闭
}
}