package FileText;
//InputStreamReader类包含了一个底层输入流,可以从中读取原始字节。它根据指定的编码方式,
//将这些字节转换为Unicode字符。
//OutputStreamWriter从运行的程序中接收Unicode字符,然后使用指定的编码方式将这些字符转换为字节,
//再将这些字节写入底层输出流中
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.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
//转换流:字节流转为字符流(处理编码:字符->解码字符集->二进制,解码)
public class TurnStream06 {
public static void main(String args[]){
turn();
}
public static void turn(){
String str = "白鹤";
byte byt[] = str.getBytes();
System.out.println(new String(byt));
try {
byte[] byt2 = "中国".getBytes("GB2312");
System.out.println(new String(byt2,"utf-8")); //编码解码不同则出现乱码
System.out.println(new String(byt2,"GB2312"));//相同时正常输出
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
File file = new File("D:/Text/dd/BufText3.txt");
File file2 = new File("D:/Text/dd/BufText4.txt");
BufferedReader changgeread = new BufferedReader(
new InputStreamReader(
new FileInputStream(file),"utf-8"));
BufferedWriter changewrite = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(file2),"utf-8"));
int len=2048;
char [] cha2 = new char[2048];
if(-1!=(len=(changgeread.read(cha2)))){
changewrite.write(cha2, 0, len);
changewrite.flush();
changewrite.close();
changgeread.close();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}