- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
清华面向对象程序的设计:第07章
第 7 章 流式输入输出及文件处理 7.1 流式输入输出处理机制 在Java语言中,所有的输入输出操作都采用流式处理机制。所谓流是指具有数据源和数据目标的字节序列的抽象表示。我们可以将数据写入流中,也可以从流中读取数据,实际上流中存放着以字节序列形式表示的准备流入程序或流出程序的数据。 当试图将程序中的数据输出到输出设备时,需要将这些数据以字节序列的形式写入流中,此时的数据源是程序,数据目标是输出设备,这个流被称为输出流(output stream)。 当试图将外部的数据输入到程序中时,流中的数据源是输入设备,数据目标是程序,这个流被称为输入流(input stream)。 Java程序使用流机制处理输入输出的主要好处是可以使程序中有关输入输出的代码与设备无关,这样既可以免去了解每一种设备的细节而带来的烦恼,也可以使得程序适应各种设备的输入输出。 流的基本处理单位为字节。如果每次只读写一个字节,会使得数据传输效率非常低,因此通常为流配备一个缓冲区(buffer),我们将这种流称为缓冲流。 在Java语言中,支持输入输出流的所有类被放置在java.io包中,其中主要包含两种类型的流,一种是二进制流(binary stream),另一种是字符流(character stream)。 当以二进制字节序列的形式写数据时,写到流中的数据与内存中的形式完全一样,即没有发生任何变化。当以字符的形式写数据时,由于Java中的字符采用Unicode编码,占据16个二进制位,因此,写入的每个字符为两个字节,先写高字节,后写低字节。 7.2 Java的输入输出流库 7.2.1 Java的输入输出流库 File 支持文件或目录操作的类 OutputStream 字节流输出操作的抽象类 InputStream 字节流输入操作的抽象类 Writer 字符流输出操作的抽象类 Reader 字符流输入操作的抽象类 RandomAccessFile 支持随机存取文件操作的类 7.2.2 字节输入流InputStream 字节流是以字节序列的形式读写数据的方式。从输入设备或文件中读取数据使用的字节流被称为输入流,在Java语言中用InputStream类描述,并提供了下面几个用于读取数据的成员方法: read() read(byte[] buffer) read(byte buffer[],int offset,int length) skip(long n) close() 7.2.3 字节输出流OutputStream OutputStream类是一个抽象类,它将作为所有字节输出流类的父类,在这个类中包含下面5个主要的成员方法: write(int b) write(byte[] buffer) write(byte[] buffer,int offset,int length) flush() close() 7.3 文件 利用文件组织和存储数据是一种常用的方式。在Java语言中,根据对文件的存取方式不同,提供了两个类用来描述文件及实现文件的各种操作。一个类是File类,用来支持顺序文件的操作;另一个类是RandomAccessFile类,用来支持随机文件的操作。 7.3.1 文件的创建与管理 1. 创建File对象 Java提供了三种创建File对象的方法: File fileObject=new File(c:/jdk1.2/File.java); File dirObject=new File(c:/jdk1.2/src/java); ===================================== File fileObject=new File(c:/jdk1.2/io,File.java) ; ====================================== File dirObject=new File(c:/jdk1.2/src/java/io); File fileObject=new File(dirObject,File.java); 2. 检测File对象 File类提供了一整套应用于File对象的成员方法。 exists() 检测File对象所描述的文件或目录是否存在。 isDirectory() 检测File对象所描述的是否为目录。 isFile() 检测File对象所描述的是否为文件。 isHidden() 检测File对象所描述的是否为一个隐含文件。 canRead() 检测File对象所描述的文件是否可读。 canWrite() 检测File对象所描述的文件是否可写。 equals(Object obj) 检测File对象描述的绝对路径与obj的绝
文档评论(0)