将字节流转换为字符流 (解码)> 将字符流转换为字节流写入文件(编码)
utf-8.txt是以utf-8的格式从字节变成字符的文本,即3个字节变成1个字符,再以gbk的格式将读到的字符写入gbk.txt中
例如:以utf-8的格式读到的三个字节的字符’方’,将’方’以gbk的格式写入gbk.txt时,'方’变成了2个字节大小,符合ASCII字符不变
代码:
@Test
public void testTran() {
InputStreamReader isr = null;
OutputStreamWriter osw = null;
try {
File file = new File("a.txt");
File file2 = new File("a_gbk.txt");
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(file2);
isr = new InputStreamReader(fis,"utf-8");
osw = new OutputStreamWriter(fos,"gbk");
char[] cbuf = new char[5];
int len;
while ((len=isr.read(cbuf))!=-1){
osw.write(cbuf,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(isr!=null)
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if(osw!=null)
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}```