模板Java基础系列-IO.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
示例 首先文本文件“Hello.txt” 压缩为文件“test.gz”,再解压该文件,显示其中内容,并另存为“newHello.txt” ., * 3、处理压缩文件——运用ZIP压缩多个文件 Zip文件 可能含有多个文件,所以有多个入口(Entry) 每个入口用一个ZipEntity对象表示,该对象的getName()方法返回文件的最初名称 ZipOutputStream 父类是DeflaterOutputStream 可以把数据压缩成ZIP格式 ZipInputStream 父类是InflaterInputStream 可以把压缩成ZIP格式的数据解压缩 ., * 示例 1、从命令行输入若干个文件名,将所有文件压缩为“c:/test.zip”,再从此压缩文件中解压并显示 2、用来将指定zip文件解压到指定路径下 ., * 4、流处理器--流的处理过程 类似地,也可以用FileOutputStream类直接向一个文件中写出数据,如下图所示: 在实际应用当中,这种简单的机制并没有太大的用处。因为程序需要写出的往往是非常结构化的信息,比如数值、文字、源代码等。这样一来,数据的转换工作将十分复杂 FileOutputStream byte类型的数据 byte类型的数据 汇 磁盘文件 ., * 4、流处理器--流的处理过程 Java的I/O库提供了一个称作链接(Chaining)的机制,可以将一个流处理器与另一个流处理器首尾相接,以其中之一的输出为输入,形成一个流管道的链接 例如:DataInputStream流处理器可以把FileInputStream流对象的输出当作输入,将byte类型的数据转换成java的基本数据类型和String类型的数据,如下图所示: FileInputStream byte类型的数据 byte类型的数据 源 磁盘文件 DataInputStream int类型的数据 float类型的数据 String类型的数据 ., * 4、流处理器--流的处理过程 类似地,向一个文件写入byte类型的数据不是一个简单的过程:一个程序需要向一个文件里面写入的数据往往是结构化的,而不是byte类型的,因此在利用FileOutputStream写的时候必须首先经过转换。 DataOutputStream流处理器提供了直接接收基本数据类型和String类型的方法,而这个流处理器的输出数据则是byte类型。这样一来,可以将DataOutputStream和FileOutputStream链接起来,达到直接将结构化的数据写入到文件中的目的。 DataOutputStream int类型的数据 float类型的数据 String类型的数据 byte类型的数据 汇 磁盘文件 byte类型的数据 FileOutputStream ., * 4、流处理器--分类 流处理器所处理的流必定都有流源。流源分成两大类: 数组、String、File等,叫原始流源 用于链接流类的流源,叫链接流源 Java 语言的I/O库是对各种常见的流源、流汇、以及处理过程的抽象化 Java 语言的I/O库是由一些基本的原始流处理器和围绕它们的装饰流处理器所组成的 ., * 5、IO类的继承结构 字节输入流 字节输出流 字符输入流 字符输出流 ., * 字节输入流--基类InputStream 类声明: public abstract class InputStream extends Object implements Closeable 三个基本的read方法: abstract int read() //这里的read方法是为了更复杂的类可以利用它们,以便提供一个更有用的接口 int read(byte[] b) //从输入流中读取字节数据保存到数组b中 int read(byte[] b, int offset, int length) 其它方法: void close() //关闭输入流并释放与之相关的所有系统资源 int available() //返回输入流中可以读的字节数 long skip(long n) //从输入流中跳过n个字节 boolean markSupported() //测试输入流是否支持mark,reset方法 void mark(int readlimit) //在输入流中标记当前位置 void reset() //重新配置输入流 ., * 字节输入流--继承结构 InputStream有7个直接子类,有4个属于FilterInputStream的子类 InputStream FileInputStream PipedInputStream ObjectInputStream Sequ

文档评论(0)

liuxiaoyu99 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档