[IT认证]C14 流式IO和文件.docVIP

  1. 1、本文档共45页,可阅读全部内容。
  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文档。上传文档
查看更多
[IT认证]C14 流式IO和文件

第十四章 流式I/O和文件 本模块讨论文件,socket和其他数据源使用的流式I/O机制。 第一节 相关问题 讨论 - 以下为与本模块内容有关的问题: Java编程语言中使用什么机制来读写文件? 第二节 目 标 在完成了本模块的学习后,你应当能够: 描述和使用java.io包的流式思想 构造文件和过滤器流,并恰当地使用它们 区别流与读者和作者,并进行合适的选择 考察并操作文件和目录 读、写和更新文本和数据文件 使用Serialization接口来保持对象的状态 第三节 流式I/O 本模块考察了Java编程语言如何使用流来处理字节和字符I/O(包括stdio,stdout和stderr)。下面几节将考察有关处理文件和操作它们所包含的数据的特定细节。 14.3.1 流的基础知识 一个流是字节的源或目的。次序是有意义的。例如,一个需要键盘输入的程序可以用流来做到这一点。 两种基本的流是:输入流和输出流。你可以从输入流读,但你不能对它写。要从输入流读取字节,必须有一个与这个流相关联的字符源。 在java.io包中,有一些流是结点流,即它们可以从一个特定的地方读写,例如磁盘或者一块内存。其他流称作过滤器。一个过滤器输入流是用一个到已存在的输入流的连接创建的。此后,当你试图从过滤输入流对象读时,它向你提供来自另一个输入流对象的字符。 14.3.2 InputStream方法 int read() int read(byte []) int read(byte[], int ,int ) 这三个方法提供对输入管道数据的存取。简单读方法返回一个int值,它包含从流里读出的一个字节或者-1,其中后者表明文件结束。其它两种方法将数据读入到字节数组中,并返回所读的字节数。第三个方法中的两个int参数指定了所要填入的数组的子范围。 注-考虑到效率,总是在实际最大的块中读取数据。 void close() 你完成流操作之后,就关闭这个流。如果你有一个流所组成的栈,使用过滤器流,就关闭栈顶部的流。这个关闭操作会关闭其余的流。 int available() 这个方法报告立刻可以从流中读取的字节数。在这个调用之后的实际读操作可能返回更多的字节数。 skip(long) 这个方法丢弃了流中指定数目的字符。 boolean markSupported() void mark(int) void reset() 如果流支持“回放”操作,则这些方法可以用来完成这个操作。如果mark()和reset()方法可以在特定的流上操作,则markSupported()方法将返回ture。mark(int)方法用来指明应当标记流的当前点和分配一个足够大的缓冲区,它最少可以容纳参数所指定数量的字符。在随后的read()操作完成之后,调用reset()方法来返回你标记的输入点。 14.3.3 OutputStream方法 void write(int) void write(byte []) void write(byte [], int, int) 这些方法写输出流。和输入一样,总是尝试以实际最大的块进行写操作。 void close() 当你完成写操作后,就关闭输出流。如果你有一个流所组成的栈,就关闭栈顶部的流。这个关闭操作会关闭其余的流。 void flush() 有时一个输出流在积累了若干次之后才进行真正的写操作。flush()方法允许你强制执行写操作。 第四节 基本的流类 在java.io包中定义了一些流类。下图表明了包中的类层次。一些更公共的类将在后面介绍。 14.4.1 FileInputStream和FileOutputStream 这些类是结点流,而且正如这个名字所暗示的那样,它们使用磁盘文件。这些类的构造函数允许你指定它们所连接的文件。要构造一个FileInputStream,所关联的文件必须存在而且是可读的。如果你要构造一个FileOutputStream而输出文件已经存在,则它将被覆盖。 FileInputStream infile = new FileInputStream(myfile.dat); FileOutputStream outfile = new FileOutputStream(results.dat); 14.4.2 BufferInputStream和BufferOutputStream 这些是过滤器流,它们可以提高I/O操作的效率。 14.4.3 DataInputStream和DataOutputStream 这些过滤器通过流来读写Java基本类。例如: DataInputStream方法 byte readByte() long readLong() double readDouble() DataO

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档