- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
字符流 字符流 字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好 Java提供了Reader、Writer两个专门操作字符流的类 字符输入流:Reader 字符输出流:Writer 字符输出流 字符输出流Writer 所有字符输出流类都是抽象类Writer的子类 最常用的子类是FileWriter类 Writer的常用方法有 void write(int n) 向输出流写入单个字符 void write(char b[]) 向输出流写入一个字符数组 void write(String str) 向输出流写入一个字符数组 void close()关闭输出流 操作实例 输出字符串到指定路径 案例1 追加内容 案例2 字符输入流 字符输入流Reader 所有字符输入流类都是抽象类Reader的子类 Reader的常用方法 int read() 从源中读取一个字符的数据,返回字符值 int read(char b[]) 从源中试图读取b.length个字符到b中,返回实际读取的字符数目 void close()关闭输入流 Reader读取文件的步骤 创建字符输入流对象,负责读取文件 创建中转站数组,存放读取的内容 读取文件内容到数组 输出保存在数组中的文件内容 关闭输入流 操作实例 以字符数组的形式读取数据 案例1 通过循环,一个字符一个字符读取 案例2 字节流和字符流的区别 字节流和字符流的区别 字节流操作的过程中,不会使用缓冲区,直接操作文件本身,字符流操作的过程要使用缓冲区 对于字符流来说,如果使用完不关闭字符输出流,内容将写不到文件中,如果要写如可以使用flush()进行刷新。 如果操作的是音频、视频、图片、歌曲,就用字节流 如果操作的是文本使用字符流 小结 掌握字符流操作的步骤 理解字符流和字节流的区别 掌握边读、边写的方式 字节字符转换流 OutputStreamWriter Writer的子类,将输出的字符流变成字节流 案例1 InputStreamReader Reader的子类,将输入的字节流变为字符流 案例2 内存流 内存输出流:ByteArrayOutputStream 内存输入流:ByteArrayInputStream 案例 字符编码 编码 在Java程序的开发中,最常见的是以下几种编码方式 ISO-8859-1:属于单字节编码,最多只能表示0-255范围,主要在英文上引用 GBK/GB2312:中文编码,是双字节编码 Unicode:java使用此编码方式,也是最标准的一种编码,是使用16进制表示的编码,不兼容ISO-8859-1编码 UTF:由于unicode不兼容ISO-8859-1,而且占用更多的空间,不便于传输和存储,因此产生了UTF,UTF兼容了ISO-8859-1,同时也可以表示所有的语言字符,不过UTF不定长编码,每个字符的长度在1-6字节不等 乱码的产生 乱码的产生 在程序中,如果处理不好字符编码,则就有可能产生乱码问题,假设本机使用的是GBK编码,但程序中使用的是ISO-8859-1,则会出现乱码 得到本地的编码显示 使用System.getProperty(“file.encoding”) 案例 转码操作 byte[] getBytes(String charsetname); 案例 对象序列化 对象序列化 对象序列化,就是把一个对象变成二进制数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储 如果一个类的对象想被序列化,则该对象所在的类必须实现java.io.Serializable接口 案例1 对象的序列化和反序列化 SerialVersionUID 在对象进行序列化和反序列化的时候,要考虑JDK版本问题,如果序列化的JDK版本和反序列化的JDK版本不统一则会出现异常,所以在序列化操作中引入了一个SerialVersionUID这个常量,可以通过此常量来验证版本的一致性,在进行反序列化时,JVM会把传来的字节流SerialVersionUID与本地相应实体的SerialVesionUID进行比较,如果相同就认为是一致的可以进行序列化,否则会出现序列化版本不一致的异常 操作实例 对象序列化 使用对象输出流序列化对象的步骤,也称为序列化 使用ObjectOputStream来实现序列化 案例2 对象反序列化 使用对象输入流读入对象的过程,也成为反序列化 使用ObjectInputStream可以直
您可能关注的文档
最近下载
- 2025版《煤矿安全规程》宣贯培训课件.pptx VIP
- 2025年中国石油数智研究院秋季高校毕业生招聘60人笔试上岸历年真考点题库附带答案详解.doc
- 变电所改造工程施工方案(3篇).docx VIP
- 欧洲标准化委员化BS EN 10283 - 2010.pdf VIP
- 2025年中国石油数智研究院招聘笔试备考题库(带答案详解).pdf
- 期末模拟质量检测卷-2024-2025学年统编版语文三年级上册.docx VIP
- 山东省建筑施工企业安全生产管理人员安全生产知识考试题库(含答案).pdf VIP
- 城市规划设计计费(2004)中规协秘字第022号.pdf VIP
- 数据库原理及应用教程(MySQL版)全套教学课件.pptx VIP
- 关爱困境儿童让爱守护成长PPT模板.pptx VIP
文档评论(0)