用指定的码表读写字符
有时候读和写的字符编码不一致,如果采用默认码表进行读取,就会出现乱码,这时就需要用字符流InputStreamReader和OutputStreamWriter来指定码表读写字符。InputStreamReader和OutputStreamWriter值字节流通向字符流的桥梁,即字节流通过指定的编码表转换为字符流。
public class Demo7_transIO {
public static void main(String[] args) throws IOException {
// demo1();
// 更高效的读与写
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream("gbk.txt"), "gbk"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("utf-8.txt"),"utf-8"));
int c;
while((c = br.read()) != -1)
bw.write(c);
br.close();
bw.close();
}
public static void demo1() throws UnsupportedEncodingException, FileNotFoundException, IOException {
// 指定码表读写字符
InputStreamReader isr = new InputStreamReader(new FileInputStream("gbk.txt"), "gbk");
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("utf-8.txt"),"utf-8");
int b;
while((b = isr.read()) != -1)
osw.write(b);
isr.close();
osw.close();
}
}

浙公网安备 33010602011771号