Java 之 转换流

一、字符编码和字符集

二、编码引发的问题

  当我们使用 UTF-8 编码保存文件时,用 UTF-8 再次读取不会出现任何问题。但是,当使用其他的编码(如GBK)读取文件时,就会出现乱码现象。

  Demo:

 1 public class ReaderDemo {
 2     public static void main(String[] args) throws IOException {
 3         FileReader fileReader = new FileReader("E:\\File_GBK.txt");
 4         int read;
 5         while ((read = fileReader.read()) != ‐1) {
 6             System.out.print((char)read);
 7         }
 8          fileReader.close();
 9     }
10 } 
11 输出结果:
12 ���    

三、InputStreamReader类

四、OutputStreamWriter类

五、转换流理解图解

  转换流是字节与字符间的桥梁!

 

   转换流的原理

 

 

 六、转换文件编码

  要求:GBK编码的文本文件,转换为UTF-8编码的文本文件。
  代码实现:

 1 /*
 2     分析:
 3         1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称GBK
 4         2.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称UTF-8
 5         3.使用InputStreamReader对象中的方法read读取文件
 6         4.使用OutputStreamWriter对象中的方法write,把读取的数据写入到文件中
 7         5.释放资源
 8  */
 9  public static void main(String[] args) throws IOException {
10         //1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称GBK
11         InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\我是GBK格式的文本.txt"),"GBK");
12         //2.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称UTF-8
13         OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("E:\\我是utf_8格式的文件.txt"),"UTF-8");
14         //3.使用InputStreamReader对象中的方法read读取文件
15         int len = 0;
16         while((len = isr.read())!=-1){
17             //4.使用OutputStreamWriter对象中的方法write,把读取的数据写入到文件中
18             osw.write(len);
19         }
20         //5.释放资源
21         osw.close();
22         isr.close();
23     }

 

转载于:https://www.cnblogs.com/niujifei/p/11497539.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值