- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- [农林牧渔]观赏动植物.ppt
- [初一政史地]亚洲 人文环境.ppt
- [初一政史地]39535气候类型.ppt
- [初一政史地]东南亚地理.ppt
- [初一政史地]君主集权的强化 历史课件.ppt
- [初一政史地]政治初一总复习提纲.ppt
- [初一政史地]居民与聚落.ppt
- [初一政史地]气温的变化与分布.ppt
- [初一政史地]中国的省级行政区.ppt
- [初一政史地]华盛顿.ppt
- 2025年储能系统辅助服务市场定价与电力需求侧响应机制报告.docx
- 2025年低空观光旅游航线航空器安全监管与标准制定.docx
- 高校思想政治理论课案例教学资源开发中的思想政治教育课程设计与实施策略研究教学研究课题报告.docx
- 《家政服务业规范化发展中的家政服务行业标准化实施策略研究》教学研究课题报告.docx
- 《农村土地流转与农业规模化经营市场机制研究》教学研究课题报告.docx
- 《新型冠状病毒肺炎康复者抗体水平与病毒感染后免疫系统平衡性评价方法前沿》教学研究课题报告.docx
- 2025年元宇宙产业生态教育领域应用与解决方案白皮书.docx
- 2025年储能技术在能源互联网中的储能电站建设与运营模式创新.docx
- 2025年低空通航航空器维修市场法律法规研究报告.docx
- 2025年在线医疗医生资源优化配置与医疗行业未来发展趋势分析.docx
文档评论(0)