第10章 输入输出.ppt
《第10章 输入输出.ppt》由会员分享,可在线阅读,更多相关《第10章 输入输出.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1010章输入输出流章输入输出流 10.1 File10.1 File类类10.2 10.2 FileInputStreamFileInputStream类类10.3 10.3 FileOutputStreamFileOutputStream类类10.4 10.4 FileReaderFileReader类和类和FileWriterFileWriter类类10.5 10.5 使用文件对话框打开和保存文件使用文件对话框打开和保存文件10.6 10.6 RandomAccessFileRandomAccessFile类类10.7 10.7 数据流数据流10.8 10.8 数组流数组流10.9
2、10.9 对象流对象流10.10 10.10 序列化与对象克隆序列化与对象克隆10.11 10.11 文件锁文件锁FileLockFileLock10.12 Process 10.12 Process 类中的流类中的流10.13 10.13 带进度条的输入流带进度条的输入流 I/OI/O流流nI/OI/O流提供一条通道程序,可以使用这条通道把源中的字流提供一条通道程序,可以使用这条通道把源中的字节序列送给目的地。把输入流的指向称做源,程序从指向节序列送给目的地。把输入流的指向称做源,程序从指向源的输入流中读取源中的数据。而输出流的指向是字节要源的输入流中读取源中的数据。而输出流的指向是字节要去
3、的一个目的地去的一个目的地(或用户或用户),程序通过向输出流中写入数据,程序通过向输出流中写入数据把信息传递到目的地。虽然把信息传递到目的地。虽然I/OI/O流经常与磁盘文件存取有流经常与磁盘文件存取有关关,但是程序的源和目的地也可以是键盘、鼠标、内存或但是程序的源和目的地也可以是键盘、鼠标、内存或显示器窗口。显示器窗口。nJavaJava的的I/OI/O流库提供大量的流类流库提供大量的流类(在包在包java.iojava.io中中)。但是,。但是,所有所有输入流类输入流类都是都是抽象类抽象类InputStreamInputStream(字节输入流)(字节输入流)或或抽象类抽象类ReaderR
4、eader(字符输入流)的子类(字符输入流)的子类,而所有,而所有输出流输出流都是都是抽象类抽象类OutputStreamOutputStream(字节输出流字节输出流)或抽象类或抽象类Writer(Writer(字符字符输出流输出流)的子类的子类。10.1 File10.1 File类类一个一个FileFile类的对象类的对象,表示了磁盘上的文件或目录表示了磁盘上的文件或目录.FileFile类提供了与平台无关的方法来对磁盘上的类提供了与平台无关的方法来对磁盘上的文件或目录进行操作。文件或目录进行操作。n构造方法有构造方法有3 3个:个:File(String filename);File(
5、String directoryPath,String filename);File(File f,String filename);常用的方法:常用的方法:canRead(),canWrite()canRead(),canWrite()检测文件检测文件是否可读可写是否可读可写。例如:例如:File File f=new f=new File(“datatemp.File(“datatemp.datdat”);”);/相相对对路路径径 File g=new File(“d:javadatatemp.File g=new File(“d:javadatatemp.datdat”);”);/绝对路
6、径绝对路径nFileFile类的一些常见方法:类的一些常见方法:StringString getName getName()():返回文件名;返回文件名;StringString getParent getParent()():返回文件所在目录名;返回文件所在目录名;StringString getPath getPath()():返回文件路径;返回文件路径;StringString getAbsolutePath getAbsolutePath()():返回绝对路径;返回绝对路径;booleanboolean exists()exists():文件是否存在;文件是否存在;boolean ca
7、nWriteboolean canWrite():():文件是否可写、读;文件是否可写、读;booleanboolean isFile isFile()():是否为文件是否为文件boolean isDirectoryboolean isDirectory()():是否为目录;是否为目录;longlong lastModified lastModified()():文件的最后修改日期;文件的最后修改日期;long length()long length():返回文件的长度;返回文件的长度;booleanboolean delete()delete():删删除除文文件件或或目目录录。删删除除成成功
8、功返返回回true,true,否则返回否则返回false;false;boolean boolean mkdirmkdir()();创创建建一一个个目目录录。目目录录创创建建成成功功,返回返回true,true,否则返回否则返回false;false;String list()String list():返回一个代表目录下的所有文件返回一个代表目录下的所有文件的字符串数组。的字符串数组。例如例如 File f=new File(“datatemp.File f=new File(“datatemp.datdat”);”);上述引用变量上述引用变量f调用相应的方法,得到的值调用相应的方法,得到的
9、值:f.f.getNamegetName()():返回返回 temp.temp.datdatf.f.getParentgetParent()():返回返回 datadataf.f.getPathgetPath()():返回返回 datatemp.datatemp.datdatf.f.getAbsolutePathgetAbsolutePath()():返回返回 d:javadatatemp.d:javadatatemp.datdatf.exists()f.exists():若若datatemp.datatemp.datdat文件存在返回文件存在返回 true,true,否则返回否则返回fals
10、efalse10.210.2 FileInputStreamFileInputStream类类n使用文件输入流构造方法建立通往文件的输入流时,可能使用文件输入流构造方法建立通往文件的输入流时,可能会出现错误(也被称为异常)。为了把一个文件输入流对会出现错误(也被称为异常)。为了把一个文件输入流对象与一个文件关联起来,使用类似于下面所示的代码:象与一个文件关联起来,使用类似于下面所示的代码:try FileInputStream ins=new FileInputStream(myfile.dat);catch(IOException e)System.out.println(File read
11、 error:+e);/文件文件I/OI/O错误错误 从输入流中读取字节从输入流中读取字节nreadread方法给程序提供一个从输入流中读取数据的方法给程序提供一个从输入流中读取数据的基本方法基本方法 ,read,read方法从输入流中顺序读取源中的方法从输入流中顺序读取源中的单个字节数据,该方法返回字节值(单个字节数据,该方法返回字节值(02550255之间的之间的一个整数),如果到达源的末尾,该方法返回一个整数),如果到达源的末尾,该方法返回-1-1。nreadread方法还有其它一些形式。这些形式能使程序方法还有其它一些形式。这些形式能使程序把多个字节读到一个字节数组中:把多个字节读到一
12、个字节数组中:intint read(byteread(byte b);b);intint read(byteread(byte b,b,intint off,off,intint lenlen););10.3 10.3 FileOutputStreamFileOutputStream类类nFileOutputStreamFileOutputStream提供了基本的文件写入能力。构提供了基本的文件写入能力。构造方法:造方法:FileOutputStreamFileOutputStream(String nameString name)FileOutputStream(FileFileOutpu
13、tStream(File file)file)nFileOutputStreamFileOutputStream流使用流使用writewrite方法把字节写入到方法把字节写入到输出流达到目的地,输出流达到目的地,writewrite的格式如下:的格式如下:public void public void write(bytewrite(byte b)b)其功能是写其功能是写b.lengthb.length个字节到输出流。个字节到输出流。public public void.write(bytevoid.write(byte b,intb,int off,intoff,int lenlen)其功能
14、是从给定字节数组中起始于偏移量其功能是从给定字节数组中起始于偏移量offoff处写处写lenlen个字节到输出流。个字节到输出流。10.4 10.4 FileReaderFileReader类和类和FileWriterFileWriter类类n与与FileInputStreamFileInputStream、FileOutputStreamFileOutputStream字字节流相对应的是节流相对应的是FileReaderFileReader、FileWriterFileWriter字符流,他们分别是字符流,他们分别是ReaderReader和和WriterWriter的子的子类,其构造方法分
15、别是:类,其构造方法分别是:FileReaderFileReader(String filenameString filename),FileWriterFileWriter(String filename)(String filename)。n由于汉字在文件中占用由于汉字在文件中占用2 2个字节,如果使用个字节,如果使用字节流,读取不当会出现乱码现象,采用字节流,读取不当会出现乱码现象,采用字符流就可以避免这个现象,因为,在字符流就可以避免这个现象,因为,在UnicodeUnicode字符中,一个汉字被看作一个字符。字符中,一个汉字被看作一个字符。10.5 10.5 使用文件对话框打开和保存
16、文件使用文件对话框打开和保存文件n使用文件对话框方便地打开和保存文件使用文件对话框方便地打开和保存文件,因因为文件对话框可以使用户很方便的选择文为文件对话框可以使用户很方便的选择文件所在的目录以及文件的名字。件所在的目录以及文件的名字。10.6 10.6 RandomAccessFileRandomAccessFile类类nRandomAccessFile类既不是输入流类类既不是输入流类InputStreamInputStream类的子类,也不类的子类,也不是输出流类是输出流类OutputStramOutputStram类的子类流。类的子类流。RandomAccessFile类同时实类同时实现
17、了现了DataInput和和DataOutput接口,提供了对文件随机存取的功能,接口,提供了对文件随机存取的功能,利用这个类可以在文件的任何位置读取或写入数据。利用这个类可以在文件的任何位置读取或写入数据。RandomAccessFile类提供了一个文件指针,用来标志要进行读写操作类提供了一个文件指针,用来标志要进行读写操作的下一个数据的位置。的下一个数据的位置。n构造方法。构造方法。(1 1)RandomAccessFile(String name,String mode)参数参数name name 用用来确定一个文件名,给出流的源,同时也是流目的地。参数来确定一个文件名,给出流的源,同时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 输入输出 10
限制150内