JavaSE第八讲Java中的I.ppt_第1页
JavaSE第八讲Java中的I.ppt_第2页
JavaSE第八讲Java中的I.ppt_第3页
JavaSE第八讲Java中的I.ppt_第4页
JavaSE第八讲Java中的I.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaSE,第八讲,Java中的I/O,File,文件和目录路径名的抽象表示形式,TestFile.java,字节输入输出流,I/O类库中通常使用“流(stream)”这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象。“流”屏蔽了实际的I/O设备中处理数据的细节。在Java1.0中,类库的设计者首先限定与输入有关的所有类都应该从InputStream继承,而与输出有关的所有类都应该从OutputStream继承。,InputStream及其子类型,原始字节输入流处理器,ByteArrayInputStream:为多线程的通信提供缓冲区操作功能,接收一个Byte数组作为流的源。FileInputStream:建立一个与文件有关的输入流,接收一个File对象作为流的源。PipedInputStream:可以与PipedOutputStream配合使用,用于读入一个数据管道的数据,接收一个PipedOutputStream作为源。StringBufferInputStream:将一个字符传缓冲区转换为一个输入流,接收一个String对象作为流的源。,FileInputStreamDemo.java,FileInputStreamDemo,链接字节输入流处理器,FilterInputStream称为过滤输入流,它将另一个输入流作为源,这个类的子类包括以下几种:BufferedInputStream:用来从硬盘将数据读入到一个内存缓冲区,并从此缓冲区提供数据。DataInputStream:提供基于多字节的读取方法,可以读取原始数据类型的数据。PushbackInputStream:提供特殊的功能,可以将已经读取的字节“推回”到输入流中。ObjectInputStream:可以将使用ObjectOutputStream串行化的原始数据类型和对象从新并行化。SequenceInputStream:可以将两个已有的输入流连接起来,形成一个输入流,从而将多个输入流排列成一个输入流序列。,OutputStream及其子类型,原始字节输出流处理器,ByteArrayOutputStream:为多线程的通信提供缓冲区操作功能,输出流的汇集是一个Byte数组。FileOutputStream:建立一个与文件有关的输出流,输出流的汇集是一个File对象。PipedOutputStream:可以与PipedInputStream配合使用,用于向一个数据管道输出数据。,FileOutputStreamDemo.java,FileOutputStreamDemo,链接字节输出流处理器,FilterOutputStream称为过滤输出流,它将另一个输出流作为流汇,这个类的子类包括以下几种:BufferedOutputStream:用来向一个内存缓冲区写出数据,并将此缓冲区的数据输出到硬盘中。DataOutputStream:提供基于多字节的写出方法,可以写出原始数据类型的数据。PrintStream:用于产生格式化输出,System.out就是一个PrintStream。ObjectOutputStream:可以将原始数据类型和对象串行化。,Person.java,TestObject.java,Object序列化,“装饰器(Decorator)”类,通过FilterInputStream从InputStream中读入数据其中DataInputStream可以对各种基本数据类型以及String对象格式化到“流”中,以便在任何机器上的任何DataInputStream都能够读取它们。与DataInputStream对应的是DataOutputStream我们几乎对所有的输入/输出操作进行缓冲,不管是什么样的IO设备或是String,Array这样的输入可以使用BufferedInputStream防止每次读取时都得进行实际写操作。,字符输入输出流,Java1.1对基本的I/O“流”类库进行了重大的修改新增了Reader和Writer类,但是并不是用来替代InputStream和OutputStream的。尽管一些原始的“流”类库不再被使用(如果使用它们,则会收到编译器的警告信息),大部分情况可以使用Reader和Writer类代替,但是InputStream和OutputStream在以面向字节形式的I/O中仍可以提供极有价值的功能,Reader和Writer则提供兼容Unicode与面向字符的I/O的功能。Reader和Writer类的设计继承层次结构主要是为了国际化老的I/O流继承层次结构仅支持8位字节流,并且不能很好地处理16位的Unicode字符。,Reader及其子类型,原始字符输入流处理器,CharArrayReader:为多线程的通信提供缓冲区操作功能。InputStreamReader:这个类有一个子类FileReaderPipedReader:可以与PipedOutputStream配合使用,用于读入一个数据管道的数据。StringReader:将一个字符串缓冲区转换为一个输入流,接收一个String对象作为流的源。,ReaderWriterDemo.java,链接字符输入流处理器,FilterReader称为过滤输入流,它将另一个输入流作为源,这个类的子类有PushbackReader,允许将字符“推回”到流中。BufferedReader:用来从硬盘将数据读入到一个内存缓冲区中,并从此缓冲区提供数据,这个类的子类为LineNumberReader。,Writer及其子类型,原始字符输出流处理器,CharArrayWriter:为多线程的通信提供缓冲区操作功能。OutputStreamWriter:建立一个与文件有关的输出流,h含有一个具体子类FileWriter,为Writer类型的输出流提供文件输出功能。PipedWriter:可以与PipedInputStream配合使用,用于读入一个数据管道的数据。StringWriter:向一个StringBuffer写出数据,链接字符输出流处理器,FilterWriter称为过滤输出流,它将另一个输出流作为流汇,这是一个没有子类的抽象类。BufferedWriter:为Writer类型的流处理提供缓冲区功能。DataOutputStream:提供基于多字节的写出方法,可以写出原始数据类型的数据。PrintWriter:支持格式化的文字输出,“适配器(adapter)”类,尽量使用Reader和Writer,如果无法得到想要的结果或是无法编译成功,就不得不使用面向字节的类库。InputStreamReader类可以把InputStream转化成Reader,OutputStreamWriter类可以把OutputStream转化成Writer。,如何将字节流转换成为字符流?,独立类RandomAccess

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论