标签:try fileinput 转换 put exception close leo loading 问题
转换流提供了在字节流和字符流之间的转换
Java API提供了两个转换流:
InputStreamReader: 将InputStream转换为Reader
OutputStreamWriter:将Writer转换为OutputStream
字节流中的数据都是字符时,转成字符流操作更高效。
很多时候我们使用转换流来处理文件乱码问题。实现编码和解码的功能
转换流:
作用:提供字节流与字符流之间的转换
编码与解码
InputStreamReader的参数2指明了字符集,具体使用哪个字符集,取决于文件test.txt保存时使用的字符集
InputStreamReader默认是系统的编码
注意此时仍应该用try-catch块
package com.dreamcold.io;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Demo12 {
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("test.txt");
InputStreamReader isr=new InputStreamReader(fis,"UTF-8");
char[] cbuf=new char[20];
int len;
while ((len=isr.read(cbuf))!=-1){
String str=new String(cbuf,0,len);
System.out.println(str);
}
isr.close();
}
}
package com.dreamcold.io;
import java.io.*;
public class Demo13 {
public static void main(String[] args) throws IOException {
File file1=new File("test.txt");
File file2=new File("test2-gbk.txt");
FileInputStream fis=new FileInputStream(file1);
FileOutputStream fos=new FileOutputStream(file2);
InputStreamReader isr=new InputStreamReader(fis,"UTF-8");
OutputStreamWriter osw=new OutputStreamWriter(fos,"GBK");
char[] buf=new char[10];
int len;
while ((len=isr.read(buf))!=-1){
osw.write(buf,0,len);
}
isr.close();
osw.close();
}
}
效果:
标签:try fileinput 转换 put exception close leo loading 问题
原文地址:https://www.cnblogs.com/mengxiaoleng/p/14940212.html