当前位置: 首页 > news >正文

网站备案备注信息专业做互联网招聘的网站

网站备案备注信息,专业做互联网招聘的网站,技术支持 东莞网站建设机械加工,市场监督管理局IputSrem类和OupuSrem类在读写文件时操作的都是字节,如果希望在程序中操作字符,使用这两个类就不太方便,为此JDK提供了字符流。同字节流样,字符流也有两个抽象的顶级父类,分别是Reader和Writer其中,Reader是…

IputSrem类和OupuSrem类在读写文件时操作的都是字节,如果希望在程序中操作字符,使用这两个类就不太方便,为此JDK提供了字符流。同字节流样,字符流也有两个抽象的顶级父类,分别是Reader和Writer其中,Reader是字符入流,用于从某个源设备读取字符;Writer是字符输出流,用于向某个目标设备写入字符。Reader和Writer作为字符流的顶级父类,也有许多子类。下面通过张继承关系图列举Reader和Writer的一些常用子类
在这里插入图片描述
在这里插入图片描述
从中可以看到,字符流的继承关系与字节流的继承关系有些类似,很多子类都是成对(输入流和输出流)出现的,其中PipedReader和FileWriter用于读写,BufferedReader和BufferedWriter是具有缓冲功能的流,使用它们可以提高读写效率。

如何深入理解字符流的编码

Java中是以流的形式来实现数据在网络中的传输,而所说的“流”则是字节流。因为所有的数据的最底层都是以字节为单位存储的,所以以字节为单位传输数据无疑是最简单也是最有效的传输方式。
我们在学习Java的过程中,也经常接触字符流,字符流顾名思义则是以字符为单位进行数据传输,但是其实字符流的应用面是很窄的,并不是所有的文件都存在字符的概念的,比如视频文件、音频文件、图片文件,这些是无法以字符为单位进行传输的。字符流只能对文本字符进行操作。
提到字符,我们首先就会想到的是编码,因为计算机存储的是字节,我们看到的却是字符,这之间是靠编码表对应起来的,那么这也就是本篇文章索要研究的内容—字符流编码。
首先我们来看下面的案例:
在这里插入图片描述
案例显示,Demo.java的项目编码和b.txt的编码格式一样,则能够正常写入,不会乱码。原理如下图所示:
在这里插入图片描述
字符流,每一个字符流都存在一个缓冲区,缓冲区的编码格式是和项目的编码格式一致的,上述代码执行流程是:字符串“黑马”在FileWriter的缓冲区里面通过GBK编码把汉字编码成对应的字节,然后底层通过字节流将字节写入到b.txt。 很多人我们打开b.txt时看到的是“黑马”这两个字啊,并不是什么码值啊。其实所有文件的底层都是字节,子不过我们打开b.txt时,记事本软件就通过此文件的编码—GBK帮我们把码值解码成“黑马”这两个字了,所以我们看到的是黑马。照这样看来,如果b.txt的文件编码是UTF-8的话,肯定就会乱码,因为记事本会按照UTF-8进行解码,效果如下
在这里插入图片描述
接下来难点才真正的来临(很多人看了下面的代码和运行效果就蒙圈),我们把上图的代码改下(其他编码格式不变),你会发现不乱码了,如下图:
在这里插入图片描述
源码如下
在这里插入图片描述
很多人蒙圈的原因是因为,先把字符转为了UTF-8 但是又通过new String(bytes)转成了GBK啊,但是b.txt是UTF-8格式的编码啊。为什么没有乱码呢? 下图解释的很详细:
在这里插入图片描述
执行流程是:先通过UTF-8编码把“黑马”编码成几个字节比如13 42 35 86 59 47,然后再通过GBK编码,把该码值解码成对应的字符比如“传智人”,然后“传智人”进入缓冲区会通过GBK编码编码成刚才的字节 也就是13 42 35 86 59 47,然后再通过字节流写入到b.txt中,当打开b.txt时,记事本软件会按照此文件编码格式-UTF-8解码成“黑马”,所以我们看到的是没有乱码。

总结:通过比价复杂的案例我们明白了一、每个字符流都存在缓冲区,而且缓冲区的编码是和项目编码一致。二、字符流的底层依然是使用的字节流,而且还存在缓冲区的编码动作,所以效率比字节流会慢很多,所以通常数据的传输我们都会使用字节流。三、文本文件的底层存储的也是字节,我们打开文件看到的字符,是记事本软件所做的解码。

Java基础入门:

java零基础自学首Java入门教程(含Java项目和Java真题)

Javaweb核心基础

JavaWeb基础教程,Java web从入门到企业实战完整版

Spring Cloud最全微服务架构

史上最全面的springcloud微服务技术栈

SSM框架教程:

SSM框架教程_Spring+SpringMVC+Maven高级+Spring

http://www.yayakq.cn/news/460222/

相关文章:

  • 产品推广网站排名2昌平区网站建设
  • 常见的手机网站做机械设备销售的那个网站好
  • 绿色大气网站模板网页设计与网站建设分析
  • 佛山市网站建设平台大气网站模板
  • 网站源码出售买邮箱的网站
  • 整站优化外包服务自己做网站在线看pdf
  • 中山 网站设计网络规划是干什么的
  • 定制网站建设与运营案例湖南省城乡住房建设厅网站
  • 中国五码一级做爰网站wordpress音乐分享
  • 建设银行企业网银网站无法打开中国免费百姓网
  • 贵州软件开发 网站开发wordpress 服务器环境
  • 国内大型餐饮网站建设如何查看网站是否被做跳转
  • 写作网站水平哪个最好四川省安全社区建设网站
  • 郑州网站推广公司信息万网域名管理网站
  • 网站建设 工业 青岛做电商一个月能挣多少钱
  • 网站推广托管手机网站自动跳转
  • 建一个网站式系统宁波网站seo诊断工具
  • php网站开发if的代码建立什么本地网站赚钱
  • 设计网站欣赏wordpress会员无法注册
  • 网站引导页一般是什么格式二建证考试需要什么条件
  • 苏州营销型网站推广计划有几种状态
  • 电子公司网站源码建设一个网站的需求分析
  • 怎么用vs2010做网站设计wordpress导入数据库结构
  • 个人养老保险账户余额查询洛阳400电话洛阳网站seo
  • 注册外贸网站有哪些问题wordpress分类推荐
  • 郑州网站建设的软件巫溪集团网站建设
  • 响应式网站建设教程网站开发学什么比较有优势
  • 怎么弄自己的域名长沙网站seo技术
  • 做织梦网站的心得体会wordpress搬家菜单
  • 网站数据建设涉及哪些内容outlook企业邮箱收费标准