【Java—–IO流(四)之转换流详解】

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。【Java—–IO流(四)之转换流详解】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

转换流概述

当我们文件里面含有中文英文以及数字时,我们使用字节流将文件内容在内存中显示,英文和数字显示正常,而中文却显示乱码,这时候我们可以使用转换流将其转换为字符流显示在内存中。转换流是字符流和字节流之间的桥梁。InputStreamReader用于将字节输入流转换为字符输入流,OutputStreamWriter用于将字节输出流转换为字符输出流。使用转换流可以在一定程度上避免乱码,还可以指定输入输出所使用的字符集。

InputStreamReader

InputStreamReader实现将字节的输入流按指定字符集转换为字符的输入流,将InputStream转换为Reader

构造方法

InputStreamReader(InputStream in):创建一个使用默认字符集的InputStreamReader

FileInputStream fis=new FileInputStream("D:\\aaa\\helloworld.txt");
InputStreamReader isr=new InputStreamReader(fis);

InputStreamReader(InputStream in,String charsetName):创建一个使用指定字符集的InputStreamReader

FileInputStream fis=new FileInputStream("D:\\aaa\\helloworld.txt");
InputStreamReader isr=new InputStreamReader(fis,"gbk");

InputStreamReader具体使用案例代码如下:

//文件中原有内容:abcde我爱中国123
FileInputStream fis1=new FileInputStream("D:\\aaa\\helloworld.txt");
InputStreamReader isr=new InputStreamReader(fis1,"utf-8");
int ch;
while((ch=isr.read())!=-1) {
	System.out.print((char)ch);
}
isr.close();
//输出:abcde我爱中国123

OutputStreamWriter

OutputStreamWriter实现将字符的输出流按指定字符集转换为字节的输出流,将Writer转换为OutputStream

构造方法

OutputStreamWriter(OutputStream out):创建使用默认字符编码的OutputStreamWriter

FileOutputStream fos2=new FileOutputStream("D:\\aaa\\helloworld.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos2);

OutputStreamWriter(OutputStream out,String charsetName):创建使用指定字符编码的OutputStreamWriter

FileOutputStream fos2=new FileOutputStream("D:\\aaa\\helloworld.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos2,"utf-8");

OutputStreamWriter具体使用案例代码如下:

FileOutputStream fos2=new FileOutputStream("D:\\aaa\\helloworld.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos2,"utf-8");
osw.write("我是中国人");
osw.write(65);
osw.write(66);
char[] c=new char[] {'1','2','3'};
osw.write(c);
osw.close();
//文件中写入:我是中国人AB123

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/153911.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!