第十三讲 输入输出流_第1页
第十三讲 输入输出流_第2页
第十三讲 输入输出流_第3页
第十三讲 输入输出流_第4页
第十三讲 输入输出流_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、第13课的输入输出流,本章重点,1。文件2 .文件字节流3。文件字符流4。从键盘读取数据5缓冲流6阵列流,7字符串流8流9管道流10对象流11。序列化和对象复制12。随机读写流13。文件锁定,目标:标准第一,基本概念,输入:从数据源获取字节序列,数据源:标准输入设备,如键盘磁盘文件网络连接,输出:将字节序列发送到可以接收数据的目标,基本概念,Java的I/o流库提供了大量流类(软件包Java.有四个重要的abstract类:1在InputStream 2 Reader 3 output stream 4 writer中,input stream和Reader我们将依次介绍它们的子类和用法。基本

2、概念;在Java 2中,定义了两种类型的流:字节流和字符流。字节流提供了一种轻松处理字节的输入和输出的方法。例如,使用字节流读取或写入二进制数据。字符流有助于处理字符的输入和输出。这两条流采用统一的编码标准,可以实现国际化。当然,有时字符流比字节流更有效。早期的Java版本(Java 1.0)不包含字符流,因此所有输入和输出都以字节为单位。稍后,Java 1.1中添加了字符流,不建议使用某些字节格式的类和方法。这就是为什么不使用文字流的旧代码需要在适当的地方更新的原因。在最低级别,必须说明所有输入/输出都是字节格式。基于文字的流只是一种方便高效的文字处理方法。您知道预定义的流,所有Java程序

3、都会在运行时自动获取java.lang包。此包定义了名为System的类,该类封装了运行时环境的多个方面。例如,您可以使用数种方法来取得目前时间与系统相关的属性。System还包含三个预定义的流变量:in、out和err。这些成员在System中定义为public和static类型。也就是说,可以在程序的其他部分使用,而无需参照特定的System对象。System.out是标准输出流,默认情况下为控制台。System.in是标准输入,默认情况下表示键盘。System.err表示标准错误流,默认值为控制台。请注意,这些流可以重定向到任何兼容的输入/输出设备。System.in是InputStre

4、am中的对象。System.out和System.err是PrintStream的对象。用于读取和写入周围字符,但它是字节流。如果程序员愿意,可以用基于字符的流包装。您在上一章中多次使用System.out,并且可以采用相同的方式使用System.err。使用System.in有点复杂。使用、文件和Java文件类创建的对象将获取有关文件本身的信息,如文件所在的目录、文件长度以及文件的读取和写入权限。文件对象不包含对文件的读写操作。创建File对象的配置方法有四种:字符串文件名(File)。文件(string directory path,string filename);文件(文件f,字符串文

5、件名) :文件(uri uri);其中filename是文件名,directoryPath是文件的路径,f是指定为目录的文件。使用字符串文件名(File)创建文件时,会将其视为与当前应用程序位于同一目录中。文件,1文件的属性经常使用File类的以下方法获取有关文件本身的信息:public String getName()获取文件名。Public boolean canRead()确定文档是否可读。Public boolean canWrite()决定是否可以写入文档。Public boolean exists()检查文档是否存在。Public long length()获取文件的长度(以字节为

6、单位)。文件,public String getAbsolutePath()获取文件的绝对路径。Public String getParent()获取文件的父目录。Public boolean isFile()检查文件是否为常规文档,而不是目录。Public boolean isDirectroy()检查文档是否为目录。Public boolean isHidden()检查文档是否隐藏。Public long lastModified()将创建目录,并成功返回true,创建失败将返回filse,这是文件上次修改时间(1970年午夜到文件上次修改时间之间的毫秒,目录,目录,2目录(1)创建目录m

7、kdir()方法创建路径不存在的目录,并使用mkdirs()方法创建目录及其所有父目录。(2)列出目录中的文件如果File对象是目录,则此对象可以调用以下方法列出该目录下的文件和子目录:public String list()以字符串形式返回目录下的所有文件,public File listFiles()以File对象形式返回目录下的文件,目录、目录中指定类型的文件,例如。Java,txt等带有扩展名的文件)。可以使用File类的以下两种方法列出指定类型的文件:public string list(filename filter obj)方法将目录中指定类型的所有文件作为字符串返回。publi

8、c file list files(filename filter obj)此方法使用file对象返回目录中指定类型的所有文件。FilenameFilter是具有一种方法的接口,称为public boolean accept (filedir,stringname)。目录,3创建和删除文件使用File类创建文件对象时,File f=new File(c 3360 myletter,letter . txt);如果c 3360 myletter目录中没有letter.txt文件,文件对象f调用方法:public boolean createNewFile()可以在c 3360 myletter目

9、录中创建名为letter.txt的文件,文件对象调用方法public boolean delete,在下面的示例1中,c 3360/1000目录下的扩展名为.列出Java文件的名称和大小,在C:/1000上。Java文件已删除。4可执行文件可执行如果要在本地计算机上运行可执行文件,可以使用java.lang包中的运行时类。首先使用运行时类声明对象(如Runtime),然后使用类的静态getRuntime()方法创建此对象。EC=runtime . get runtime();Ec可以调用String command(exec)方法来打开本地系统上的可执行文件或执行操作。在下面的示例2中,运行时

10、对象在windows平台上打开绘图和记事本程序。返回,文件字节流,1文件InputStream类1FileInputStream类是名为文件字节输入流的InputStream的子类。文件字节输入流逐字节读取文件中的数据。此类的所有方法都继承自InputStream类。要创建FileInputStream类的对象,可以使用以下配置方法:fileInputStream(string name)FileInputStream(File File)第一个配置方法使用指定的文件名name创建fileine,第二个构造函数使用File对象创建FileInputStream对象。构造函数方法参数中指定的文件

11、称为输入流的源,输入流使用read()方法从输入流读取源的数据。文件字节流,使用文件输入流构造函数设置文件的输入流时,可能会抛出FileNotFoundException异常。程序必须使用try-catch块检测和处理此例外。输入流的唯一目的是提供程序可以读取数据的数据通道。read方法为程序提供了从输入流读取数据的基本方法。Read方法的格式为int read();Read方法从输入流中按顺序读取一字节数据。此方法返回字节值(0255之间的整数),如果读取位置到达文件末尾,则返回-1。,文件字节流,read方法具有不同的格式。这种格式允许程序将多个字节作为单个字节数组读取。int read(

12、byte b);Int read(byte b,int off,int len);其中off参数指定read方法在字节数组B中存储数据的位置,len参数指定方法读取的最大字节数。上面显示的两个read方法都返回实际读取的字节数,或者在到达输入流的末尾时返回-1。FileInputStream流将按顺序读取文件,除非关闭流,否则每次调用read方法时都会按顺序读取文件的其馀内容,直到文件结尾或流关闭。文件字节流,2文件输出流类FileInputStream类对应的类是2FileOutputStream类。FileOutputStream提供基本文件写入功能。FileOutputStream类是O

13、utputStream的子类,称为文件字节输出流。文件字节输出流按字节将数据写入文件。要创建FileOutputStream类的对象,可以使用file output stream(string name)file output stream(file file)file output stream()配置方法第二个配置方法使用File对象创建FileOutputStream对象。第三和第四种配置方法的第二个参数指示是否要进一步写入文件。输出流使用write()方法将数据写入输出流以到达目标。文件字节流,FileOutputStream对象可以使用write方法向输出流发送字节。write的用法

14、如下:将public void write(int n) 1个字节写入输出流。Public void write(byte b)将b.length字节写入输出流。Public void write (byte b,intoff,intlen)从给定字节数组中的偏移off开始,从len字节向输出流写入。参数b是存储数据的字节数组。返回、文件字节流、文件outstream流按顺序写入文件,除非关闭流,否则每次调用write方法时都会按顺序将内容写入文件,直到关闭流。如果输出流要向其中写入数据的文件已存在,并且没有写入其他文件,则将清除文件中的数据内容。如果要写入数据的文件不存在,则首先设置文件。注

15、意:使用输出流文件写入数据,最后调用flush()方法或close()方法以确保数据最终写入文件。形成良好的编程习惯,并在完成使用输入流和输出流后调用close()方法关闭输入流或输出流。下面的示例3首先将“启动Welcome”写入“hello.txt”,然后读取文件的内容。文件数据流,1fileReader类要创建FileReader类的对象,可以使用指定的文件名创建File reader(string name)File reader(File File)第一个构造函数方法name第二个配置方法使用File对象创建File reader eader(File File)构造函数方法参数中指

16、定的文件称为输入流的源,输入流使用read()方法从输入流读取源的数据。Read方法的功能解释如下:文件字符流,int read()输入流调用此方法从源读取字符,返回整数(065535之间的整数,unicode字符值),如果未读取字符,则返回-1。Int read(char b)输入流调用此方法,将b.length字符从源读取到字符数组b,并返回实际读取的字符数。到达文件结尾时返回-1。Int read(char b,int off,int len)输入流从源读取len字符,并将其放置在字符数组b中以返回实际读取的字符数。到达文件结尾时返回-1。其中,off参数通过指定read方法在字符数组B中存储数据的位置、文件字符流和2FileWriter类FileWriter,提供基本文件写入功能。FileWriter类是Writer的子类,称为文件字符输出

温馨提示

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

评论

0/150

提交评论