- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 输入输出流IO.ppt
第8章 输入输出流I/O 一、输入输出流I/O是计算机的最基本操作。 比如从键盘输入数据、从文件中读取数据或向文件中写数据、通过网络上传或下载数据等。 Java类库的设计者是通过创建大量的类来解决这个难题的。 在java中有关流的操作使用 io 包 import java.io.*; 在JDK1.4中,添加了nio类,用于改进性能及功能。 我们需要学习相当数量的类。另外,很有必要理解I/O类库的演化过程, 本章就介绍Java标准类库中各种各样的类以及它们的用法。 流式I/O “流(stream)”是个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象。 就流的运行方向来说,有两种基本的流是:输入流(Input Stream)和输出流(Output Stream)。可从中读出一系列字节的对象称为输入流。而能向其中写入一系列字节的对象称为输出流。 按处理数据的类型不同,流的分类 流 Java.io中的四个类: 以字节为对象: 输入流:InputStream 输出流:OutputStream 以字符为对象: 输入流: Reader 输出流: Writer 文件处理:File类 在学习那些真正用于在流中读写数据的类之前,让我们先看看一个实用工具,它提供了一个用于帮助我们处理文件目录事务的类库。 File(文件)类。它既能代表一个特定文件的名称又能代表一个目录下的文件集合的名称。如果它指的是一个文件集,我们就可以对此集合调用list()方法,这个方法会返回一个字符数组。 实际上,“文件路径”对这个类来说是个更好的名字。 (1)目录的检查及创建 文件类不仅仅只表示存在的文件或目录。 我们也可以用文件对象来创建新的目录或不存在的整个目录路径。 我们还可以查看文件的特性(如:大小,最后修改日期,读/写),来检查某个文件对象代表的是一个文件还是一个目录,并可以删除这个文件。 (2)目录列表器 假设我们想查看一个目录列表,可以用两种方法列出文件对象。 (1)如果我们调用不带参数的list()方法,便可以获得此文件对象包含的全部列表。 (2)然而,如果我们想获得一个受限列表——例如,想得到所有扩展名为.java的文件——那么我们就要用到“目录过滤器”,这个类会告诉我们怎样显示符合条件的文件对象。 可以在JDK文档里的类层次结构中查看到。 通过继承,任何Inputstream或Reader衍生而来的类都含有名为read()的基本方法,用于读取单个字节或者字节数组。 同样地,任何自OutputStream或Writer衍生而来的类都含有名为write()的基本方法,用于写单个字节或者字节数组。 InputStream 三个基本的读方法 abstract int read() :读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了输入流的末尾。 int read(byte[]?b) :将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。 int read(byte[]?b, int?off, int?len) :将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位置;len指定读取的最大字节数。 其它方法 long skip(long?n) :在输入流中跳过n个字节,并返回实际跳过的字节数。 void close() :关闭输入流,释放和这个流相关的系统资源。 void mark(int?readlimit) :在输入流的当前位置放置一个标记,如果读取的字节数多于readlimit设置的值,则流忽略这个标记。 void reset() :返回到上一个标记。 java.io包中 InputStream的类层次 OutputStream 三个基本的写方法 abstract void write(int?b) :往输出流中写入一个字节。 void write(byte[]?b) :往输出流中写入数组b中的所有字节。 void write(byte[]?b, int?off, int?len) :往输出流中写入数组b中从偏移量off开始的len个字节的数据。 其它方法 void flush() :刷新输出流,强制缓冲区中的输出字节被写出。 void close() :关闭输出流,释放和这个流相关的系统资源。 java.io包中 OutputStream的类层次 文件流 FileInputStr
文档评论(0)