IO流之转换流

一  转换流

1 OutputStreamWriter类

是字符流通向字节流的桥梁:

可使用指定的字符编码表,将要写入流中的字符编码成字节。它的作用的就是,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去。

    public static void main(String[] args) throws IOException {//指定目的地FileOutputStream fos=new FileOutputStream("E:\\java\\UTF-8.txt",true);//创建转换流OutputStreamWriter osw=new OutputStreamWriter(fos, "utf-8");osw.write("你好,小猪佩奇");osw.flush();//释放资源(你自己new了谁,就关谁,先开的后关)
osw.close();fos.close();}

2 InputStreamReader类

是字节流通向字符流的桥梁:

它使用指定的字符编码表读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。

    public static void main(String[] args) throws IOException {//获取数据源FileInputStream fis=new FileInputStream("E:\\java\\UTF-8.txt");//创建转换流InputStreamReader isr=new InputStreamReader(fis,"utf-8");//开始读取int len=0;while((len=isr.read())!=-1){System.out.println((char)len);}//释放资源
        isr.close();fis.close();}

注意:在读取指定的编码的文件时,一定要指定编码格式,否则就会发生解码错误,而发生乱码现象。

3. 转换流和子类的区别

发现有如下继承关系:

OutputStreamWriter:

                   |--FileWriter:

InputStreamReader:

                 |--FileReader;

一旦要指定其他编码时,绝对不能用子类,必须使用字符转换流。什么时候用子类呢?

条件:

1、操作的是文件。2、使用默认编码。

总结:

字节--->字符 : 看不懂的--->看的懂的。  需要读。输入流。 InputStreamReader

字符--->字节 : 看的懂的--->看不懂的。  需要写。输出流。 OutputStreamWriter

转载于:https://www.cnblogs.com/zzq123/p/10222154.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring事务管理(三)-PlatformmTransactionManager解析和事务传播方式原理

2019独角兽企业重金招聘Python工程师标准>>> Spring在事务管理时,对事务的处理做了极致的抽象,即PlatformTransactionManager。对事务的操作,简单地来说,只有三步操作:获取事务,提交事务&#x…

div方框弯曲边样式_使用弯曲样式编辑文本

div方框弯曲边样式Would you like a new Notepad replacement that incorporates the latest technologies while staying slim and fast? Text editors are usually bland, boring programs, but here’s a new one that makes your text come to life beautifully. 您是否想…

分布式锁的几种实现原理

分布式锁主流有三种模式: 实现方式 功能要求 实现难度 学习成本 运维成本 MySQL 的方案借助表锁/行锁实现 满足基本要求 不难 熟悉 小量OK、大量影响现有业务、1主多从架构,不方便扩容 通过 ZK 创建数据节点的方式实现 满足要求 熟悉 ZK API 即可 需要学…

如何破解您忘记的Windows密码

Here at How-To Geek, we’ve covered many different ways to reset your password for Windows—but what if you can’t reset your password? Or what if you’re using drive encryption that would wipe out your files if you changed the password? It’s time to cr…

sql语句练习50题(Mysql版)

表名和字段–1.学生表Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号–3.教师表Teacher(t_id,t_name) –教师编号,教师姓名–4.成绩表Score(s_id,c_id,s_score) –学生编号…

OpenCV3 识别图中表格-JAVA 实现

2019独角兽企业重金招聘Python工程师标准>>> 关于 JAVA 学习 OpenCV 的内容,函数讲解。内容我均整理在 GitHubd的OpenCV3-Study-JAVA OpenCV 3 识别图中表格-Java 实现 1. 说明 网上大部分资料,都是针对 C的,python、java 的例子太…

内存泄露 体现在哪个数字上_Microsoft刚刚泄漏了一个新的开始菜单。 你喜欢哪个?...

内存泄露 体现在哪个数字上NTAuthority on TwitterTwitter上的NTAuthorityMicrosoft messed up today, releasing an internal build of Windows 10 to Windows Insiders. This build was never meant to see the light of day, but it features a new Start menu design—with…

简述 Spring Cloud 是什么

很多同学都了解了Spring ,了解了 Spring Boot, 但对于 Spring Cloud 是什么还是比较懵逼的。 本文带你简单的了解下,什么是Spring Cloud。 Spring Cloud 是什么 从字面理解,Spring Cloud 就是致力于分布式系统、云服务的框架。 Spring Cloud …

js DOM节点

元素节点 4种方式获取 var oDiv document.getElementById("box");        //通过Id获取元素var oDiv document.getElementsByClassName("div")[0];   //通过类名获取元素  --》[ 0 ] 必须写var oDiv document.getElementsByTagName("…

python web scraping

2019独角兽企业重金招聘Python工程师标准>>> 最近在看《Web Scraping with Python》,借此来熟悉Python2.7如何开始编程。 发现书上主要使用的 http://example.webscraping.com/ 网站有部分变化,书中的代码有点无法对照使用,因此稍…

傅里叶变换的物理意义

用三角函数表示周期函数 傅里叶的相关理论始于下面假设:对于周期为1的信号$f(t)$,可以由不同频率的三角函数组成, $f(t) \frac{a_0}{2}\displaystyle{\sum^{\infty}_{k1}}(a_kcos(2\pi kt)b_ksin(2\pi kt))$ 组成的基础波形为一个信号对&…

天猫年度总结

2019独角兽企业重金招聘Python工程师标准>>> 鲁大师天猫工作总结 时间:2017年10月22日-1月30日 1、对代理商进行6大区域的划分管理,有专门的客服指导。 2、加班费申请和车费报销制度。 3、简化了特权订金2阶段改成1阶段,极大的方便…

因特网使用期限_Internet死亡时使用PC的其他方式

因特网使用期限Nothing is more annoying than getting your Internet connection shut down, due to weather, or perhaps forgetting to pay your bill. Let’s take a look at some ways you can be productive and entertained without the Internet. 没有什么比由于天气原…

【基础操作】线性基详解

线性基是一个奇妙的集合(我摘的原话) 这里以非 $OI$ 的角度介绍了线性基 基础部分 模板题 给你 $n$ 个数的集合,让你选出任意多个不重复的数,使得它们的异或和最大。 线性基是什么 我们称集合 $B$ 是集合 $S$ 的线性基&#xff0c…

节省大量教科书的三种潜在风险方法

Photo by Sultry 摄影: Sultry You can always save money on textbooks by buying online, going ebook, or renting what you need. But there are riskier ways to save a buck that just may yield even greater payoff, such as getting the international or …

解决内网搭建本地yum仓库。

2019独角兽企业重金招聘Python工程师标准>>> 一、使用iso镜像搭建本地yum仓库; 1、挂载镜像到/mnt目录下: [rootDasoncheng ~]# mount /dev/cdrom /mnt mount: /dev/sr0 is write-protected, mounting read-only2、备份配置文件,并…

通过用 .NET 生成自定义窗体设计器来定制应用程序

本文讨论: ? 设计时环境基本原理 ? 窗体设计器体系结构 ? Visual Studio .NET 中窗体设计器的实现 ? 为自己的应用程序编写窗体设计器而需要实现的服务 在很多年中,MFC 一直是生成基于 Windows? 的应用程序的流行框架。MFC 包含一个可以使窗体生成、…

airdrop 是 蓝牙吗_您可以在Windows PC或Android手机上使用AirDrop吗?

airdrop 是 蓝牙吗Aleksey Khilko/Shutterstock.comAleksey Khilko / Shutterstock.comApple’s AirDrop is a convenient way to send photos, files, links, and other data between devices. AirDrop only works on Macs, iPhones, and iPads, but similar solutions are av…

vue加百度统计代码(亲测有效)

申请百度统计后,会得到一段JS代码,需要插入到每个网页中去,在Vue.js项目首先想到的可能就是,把统计代码插入到index.html入口文件中,这样就全局插入,每个页面就都有了;这样做就涉及到一个问题,V…

如何将Rant变成生产力电动工具

Ranting doesn’t have to be a waste of breathe and time. You can turn a rant into a powerful tool for productivity. Learn how to transform your sense of victim hood and irritability to self-empowerment and mental clarity. 狂欢不必浪费呼吸和时间。 您可以将r…