Java面向字节流应用.docxVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java面向字节流的应用 文件输入输出流 文件输入输出流 FileInputStream 和 FileOutputStream 负责完成对本地磁盘文件的顺序输入输出操作。 【例 10-5】通过程序创建一个文件,从键盘输入字符,当遇到字符“#”时结束,在屏幕上显示该文件的所有内容( HYPERLINK /uploads/code/java/rumen/10-5.txt \t _blank 查看源代码)。 运行后在程序目录建立一个名称为 ep10_5 的文件,运行结果如图 10-8 所示: 图 10-8? 例 10_5 运行结果 FileDescriptor 是 java.io 中的一个类,该类不能实例化,其中包含三个静态成员:in、out 和err,分别对应于标准输入流、标准输出流和标准错误流,利用它们可以在标准输入输出流上建立文件输入输出流,实现键盘输入或屏幕输出操作。 【例 10-6】实现对二进制图形文件(.gif)的备份( HYPERLINK /uploads/code/java/rumen/10-6.txt \t _blank 查看源代码)。 运行后在程序目录备份了一个名称为 ep10_6_a.gif 的文件,运行结果如图 10-9 所示: 图 10-9? 例 10_6 运行结果 过滤流 FilterInputStream 和 FileOutputStream 是 InputStream 和 OutputStream 的直接子类,分别实现了在数据的读、写操作的同时能对所传输的数据做指定类型或格式的转换,即可实现对二进制字节数据的理解和编码转换。 常用的两个过滤流是数据输入流 DataInputStream 和数据输出流 DataOutputStream。其构造方法为: ? ??DataInputStream(InputStream in); ?//创建新输入流,从指定的输入流 in 读数据 ? ? DataOutputStream(OutputStream out); ?//创建新输出流,向指定的输出流 out 写数据 由于 DataInputStream 和 DataOutputStream 分别实现了 DataInput 和 DataOutput 两个接口(这两个接口规定了基本类型数据的输入输出方法)中定义的独立于具体机器的带格式的读写操作,从而实现了对不同类型数据的读写。由构造方法可以看出,输入输出流分别作为数据输入输出流的构造方法参数,即作为过滤流必须与相应的数据流相连。 DataInputStream 和 DataOutputStream 类提供了很多个针对不同类型数据的读写方法,具体内容读者可参看 Java 的帮助文档。 【例 10-7】将三个 int 型数字 100,0,-100 写入数据文件 ep10_6.dat 中( HYPERLINK /uploads/code/java/rumen/10-7.txt \t _blank 查看源代码)。 运行后在程序目录中生成数据文件 ep10_7.dat,用文本编辑器打开后发现内容为二进制的: 00 00 00 64 00 00 00 00 FF FF FF 9C。 【例 10-8】读取数据文件 ep10_6.dat 中的三个 int 型数字,求和并显示( HYPERLINK /uploads/code/java/rumen/10-8.txt \t _blank 查看源代码)。 运行结果: 三个数的和为:0 readInt 方法可以从输入输出流中读入 4 个字节并将其作为 int 型数据直接参与运算。由于已经知道文件中有 3 个数据,所以可以使用 3 个读入语句,但若只知道文件中是 int 型数据而不知道数据的个数时该怎么办呢?因为 DataInputStream 的读入操作如遇到文件结尾就会抛出 EOFException 异常,所以可将读操作放入 try 中。 try{ ? ? while(true) ? ? sum+=a.readInt(); } catch(EOFException e){ ? ? System.out.pritnln(三个数的和为:+sum); ? ? a.close(); } EOFException 是 IOException 的子类,只有文件结束异常时才会被捕捉到,但如果没有读到文件结尾,在读取过程中出现异常就属于 IOException。 【例 10-9】从键盘输入一个整数,求该数的各位数字之和( HYPERLINK /uploads/code/java/rumen/10-9.txt \t _blank 查看源代码)。 运行结果: 请输入一个整数:26 842403082 的各位数字之和=31 需要

文档评论(0)

celkhn0303 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档