第10讲 文件与流操作_第1页
第10讲 文件与流操作_第2页
第10讲 文件与流操作_第3页
第10讲 文件与流操作_第4页
第10讲 文件与流操作_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、,第10课文件和流操作,面向对象的编程,第2页,第10课文件和流操作,文件和目录管理流的概念InputStreamOutputStreamIO库设计原理文件中的随机访问对象序列化,本课的要点,面向对象的编程,第3页,第1页,文件和目录管理,以及File类提供了独立于平台的方法,用于操作磁盘上的文件或目录。提供了多种获取文件或基本信息和工作(创建、删除等)文件的方法,但实际上不打开或访问文件的内容。面向对象的编程,第4页,File(Stringpath):将表示路径的字符串转换为抽象路径表示。File (string parent,string child) : parent表示目录,child

2、表示文件(不能为空)。与File(文件父级,字符串子级):相同。第一个构造函数通常由访问的文件对象确定,它是在应用程序中处理单个文件时最有用的构造函数。但是,如果使用了一个公共目录中的几个文件,则使用第二个或第三个构造函数会更方便。1,文件和目录管理,面向对象的编程,第5页,PDM,CAPP数据库,PDM数据库,文件,txt.xml、outputStream、inputStream、面向对象的编程、第6页、第2页、流的概念和流(stream)表示在计算机的输入和输出之间移动的数据序列。两个主要流是输入流(InputStream)和输出流(OutputStream)。输入流从外围设备流入计算机的

3、数据序列输出流表示从计算机流向外围设备的数据序列,提供了面向对象的编程、第7页、第2页、流的概念、Java中超过60个不同的流类型,这些流类是java.io包中包含的四个基本抽象类:InputStream、OutputStream和ream过滤流:使用节点流作为输入或输出。过滤后的流是使用已存在的一个输入或输出流连接创建的。面向对象的编程,第9页,3,InputStream-三种基本读取方法,abstractintread():读取字节数据并返回读取的数据。如果返回-1,则读取输入流的最后一个intread(byteb),然后将数据读取到字节数组中,返回实际读取的字节数。如果返回-1,则读取输

4、入流的结尾intread (byte,intoff,intlen),并返回实际读取的字节数。如果返回-1,则表示读取了输入流的结尾。在Off阵列b中,指定存储数据的起始偏移位置。Len返回读取的最大字节数、面向对象的编程、第10页、长工具包(longgn):跳过输入流中的n个字节并返回实际跳过的字节数。Intavailable():返回未发生阻止时可以读取的字节数。Voidclose():关闭输入流并释放与流相关的系统资源。Voidmark:将标记放置在输入流的当前位置。如果读取的字节数大于readlimit设置的值,流将忽略此标记。Voidreset():返回到上一个标签。Booleanma

5、rkSupported():测试当前流是否支持mark和reset方法。如果支持,则返回true,否则返回false。3,InputStream-其他方法,面向对象的编程,第11页,3,InputStream-输入流的类层次结构,InputStream,string buffer inputstream,fiingWrite的通用协议是将字节写入输出流。要写入的字节是参数b的8个子字节。b的24个高位被忽略。public void write (byte):将b.length字节写入指定字节数组中的此输出流。publicvoidwrite(byteb,intoff,intlen):在指定的字节

6、数组中,将从偏移off开始的len字节写入此输出流。面向对象的编程,第13页,4,OutputStream-其他方法,publicvoidflush():刷新此输出流,然后关闭缓冲的所有输出字节publicvoidclose():关闭此输出流,释放与此流相关的所有系统资源。面向对象的编程,第14页,4,OutputStream-输入流的类层次结构,OutputStream,File output stream,bytearray output stream,filter output stream用于从文件中读取或写入字节流。配置文件输出流时,如果文件已存在,则复盖此文件。BufferedIn

7、putStream和BufferedOutputStream筛选器流必须使用已存在的节点流进行结构化,并提供缓冲读和写,以提高读和写效率。面向对象的编程、第16页、第5页、基础流类、DataInputStream和DataOutputStream筛选器流必须使用现有节点流构建,并且具有读取和写入Java基础数据类型的功能。用于线程间通信的PipedInputStream和PipedOutputStream管道流。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。要使管道流有用,必须配置管道输入流和管道输出流。面向对象的编程,第17页,F

8、ileInputStream(FileFile):创建FileInputStream,方法是打开通过文件系统中的File对象file指定的实际文件的连接。FiledescriptorfdObj:使用文件描述符fdObj生成FileInputStream,以表示与文件系统中物理文件的现有连接。FileInputStream(Stringname):打开到实际文件的连接,并创建文件InputStream,该文件由文件系统的路径名name指定。5,基本流类-将文件输入输出流、面向对象的编程、第18页、FileExam.java复制到FileExam.java.bak。程序首先打开FileExam.j

9、ava文件,使用read()逐字节读取其内容(返回值为-1时到达文件结尾),然后使用write()将读取的字节逐个写入其他文件FileExam.java.bak。如果无法打开文件(例如没有FileExam.java)或无法创建文件(FileExam.java.bak),则会引发FileNotFoundException异常,如果发生读取和写入错误,则会引发IOException异常。最后,在finally中关闭文件。FileIO。Java,5,基本流类-文件I/O流,Back,面向对象的编程,第19页,5,基本流类-缓冲I/O流,Java使用缓冲技术,1)提高I/O性能2)打开称为缓冲区3的内

10、存区域,一旦缓冲区已满,就一次写入磁盘。Back、面向对象的编程、第20页、独立于系统的格式化读写操作(分别在DataInput和DataOutput的两个界面中定义)、各种类型数据的读写数据DataInputStream(InputStreamin):指定的本机InputStreamIntread (byte,intoff,intlen):从包含的输入流中将len字节作为字节数组读取。booleanrdeaboolean()bytearray()char ready char()double readouble()floatreadfloot()5,默认流类-数据输入输出一个数据流的输出是另

11、一个数据流的输入PipedInputStream():未连接的pipedinputstrampedinputstream(pipedoutputstramsrc):传输输出流src,5,基本流类-管道面向对象的编程,第24页,Intavailable():返回可以从该输入流读取的字节数,但不阻止voidclose():关闭此传输输入流,释放与该流相关的所有系统资源void connect(pipedoutputstramsrc):5,基本流类-管道I/o流,回,面向对象的编程,第25页,6,I/o库设计原理,Java的I/o库提供了一种称为链接的机制,该机制将一个流连接到另一个流和末端,从而创

12、建指向一个流管道的链接。此机制实际上是一个称为Decorator(装饰)设计模式的应用程序。通过指向流的链接动态增加流的能力,这些功能的增加是通过结合某些流的基本功能而动态获得的。我们经常需要创建多个I/O对象以获得单个I/O对象,这也是不能轻松确定JavaI/O库的原因,但是在I/O库中使用Decorator模式时,我们可以灵活地实现这一点。面向对象的编程,第26页,6,I/O库的设计原则-指向I/O流的链接,文件输入流,缓冲输入流,数据输入流,接下来,介绍字符流Java程序语言使用unicode表示字符串和字符的文本格式的输入输出。字符流主要用于支持unicode的字符内容,字节流中提供的大多数类都具有该字符流的类。Reader和Writer这两个抽象类主要用于读取和写入字符流,特别适合处理汉字输入输出。面向对象的编程,第28页,第7页,Reader和Writer-Reader的类层次结构,Reader,buffered reader,chararrayreader,filterreader,priter ReaderFileReader类别只有从InputStreamReader继承的功能,但是FileReader(Filefile):有自己的建构函式,可组成FileReader。FileReader(filedescr

温馨提示

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

评论

0/150

提交评论