第09章输入输出流和文件操作(修改2缩减)_第1页
第09章输入输出流和文件操作(修改2缩减)_第2页
第09章输入输出流和文件操作(修改2缩减)_第3页
第09章输入输出流和文件操作(修改2缩减)_第4页
第09章输入输出流和文件操作(修改2缩减)_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第第9 9章章 输入输出流和文件操作输入输出流和文件操作流的基本概念流的基本概念流类流类nInputStream抽象字节输入流类抽象字节输入流类nOuputStream 抽象字节输出流类抽象字节输出流类nReader抽象字符输入流类抽象字符输入流类nWriter抽象字符输出流类抽象字符输出流类文件操作类文件操作类nFile文件类文件类nRandomAccessFile 随机存取文件类随机存取文件类第第9 9章章 本章主要内容本章主要内容流的基本概念流的基本概念n流(流(stream)是指一组有顺序、有起点和终点的字节集合,是指一组有顺序、有起点和终点的字节集合,是对是对数据传输数据传输的总称或

2、抽象。数据在两个对象之间的传输称的总称或抽象。数据在两个对象之间的传输称为为流流。n流的方向流的方向:数据由外部输入设备流向内存的过程称为数据输数据由外部输入设备流向内存的过程称为数据输入;由内存流向外部输出设备的过程称为数据输出。因此,入;由内存流向外部输出设备的过程称为数据输出。因此,从程序所在的内存角度看,流入内存的为从程序所在的内存角度看,流入内存的为输入流输入流,流出内存,流出内存的为的为输出流输出流。n流的基本操作流的基本操作:读和写读和写。从流中取得数据的操作称为读;向。从流中取得数据的操作称为读;向流中添加数据的操作称为写。流中添加数据的操作称为写。输入流只能进行读;输出流只输

3、入流只能进行读;输出流只能进行写。能进行写。流的基本概念流的基本概念在程序代码中,用输入流从外部设备中读取数据到内存;用输在程序代码中,用输入流从外部设备中读取数据到内存;用输出流将内存数据写到外部设备中。出流将内存数据写到外部设备中。 不同的外部设备对应不同不同的外部设备对应不同的流类。的流类。 程序代码(内存中)程序代码(内存中)输入流输入流输出流输出流键盘显示器打印机文件文件读取写入标准输入流标准输入流标准输出流标准输出流文件输入流文件输入流文件输出流文件输出流流的基本概念流的基本概念 流采用缓冲区技术:对流进行读流采用缓冲区技术:对流进行读/写操作,一次只能读写操作,一次只能读/写一写

4、一个字节,数据传输效率低。为提高效率,将一块内存空间设个字节,数据传输效率低。为提高效率,将一块内存空间设计成缓冲区。配备缓冲区的流称为计成缓冲区。配备缓冲区的流称为缓冲流缓冲流。n当当向流写入数据向流写入数据时,数据被发送到缓冲区,当缓冲区满时,时,数据被发送到缓冲区,当缓冲区满时,系统将数据全部发送到相应的设备。如果在此之前要传输系统将数据全部发送到相应的设备。如果在此之前要传输数据,可以使用数据,可以使用flush()操作;操作;n当当从流读取数据从流读取数据时,系统实际从缓冲区读。当缓冲区空时,时,系统实际从缓冲区读。当缓冲区空时,系统就从相关设备自动读取数据充满缓冲区。系统就从相关设

5、备自动读取数据充满缓冲区。流的基本概念流的基本概念 java.io包中的数据流包中的数据流n字节流:以字节流:以字节字节作为流中元素的基本类型。作为流中元素的基本类型。n字符流:以字符流:以字符字符作为流中元素的基本类型。作为流中元素的基本类型。nInputStream抽象的抽象的字节字节输入输入流根类流根类nOuputStream抽象的抽象的字节字节输出输出流根类流根类nReader抽象的抽象的字符字符输入输入流根类流根类Writer抽象的抽象的字符字符输出输出流根类流根类9.2 9.2 字节输入字节输入/ /输出流类输出流类9.2.1 抽象字节流抽象字节流9.2.2 Java标准输入标准输

6、入/输出输出9.2.3 文件字节流文件字节流9.2.4 数据字节流数据字节流9.2.5 对象字节流对象字节流字节流字节流n字节输入流类字节输入流类InputStream :所有面向字节的输入流超类。:所有面向字节的输入流超类。public abstract class InputStream extends Object implements Closeable public abstract int read() throws IOException; /返回读取的一个字节,抽象方法返回读取的一个字节,抽象方法 public int read(byte b) throws IOExcepti

7、on /读取若干字节到指定缓冲区读取若干字节到指定缓冲区b,返回实际读取的字节数,返回实际读取的字节数 public void close() throws IOException /关闭输入流关闭输入流 InputStream类的子类字节流字节流n字节输出流类字节输出流类OutputStream:所有面向字节的输出流超类。:所有面向字节的输出流超类。public abstract class OutputStream extends Object implements Closeable, Flushable public abstract void write(int b) throws

8、IOException; /写入一个字节,抽象方法写入一个字节,抽象方法 public void write(byte b) throws IOException/将缓冲区中的若干字节写入输出流将缓冲区中的若干字节写入输出流 public void flush() throws IOException /立即传输立即传输 public void close() throws IOException /关闭输出流关闭输出流OutputStream类的子类字节流字节流1、字节输入流、字节输入流InputStream类类 :所有面向字节的输:所有面向字节的输入流的超类。入流的超类。2、字节输出流、字

9、节输出流OutputStream类:所有面向字节的类:所有面向字节的输出流的超类。输出流的超类。 字节流相关内容:字节流相关内容:标准输入标准输入/ /输出流输出流文件字节流文件字节流数据字节流数据字节流对象字节流对象字节流9.2.2 Java9.2.2 Java标准输入标准输入/ /输出输出n标准输入标准输入/输出常量输出常量public final class System extends Object public final static InputStream in /标准输入常量标准输入常量 public final static PrintStream out /标准输出常量标准

10、输出常量 public final static PrintStream err/标准错误输出常量标准错误输出常量System.in是是InputStream类的常量对象,调用类的常量对象,调用read()方法可方法可以从键盘接收数据;以从键盘接收数据;System.out是是PrintStream类的常量对象,调用类的常量对象,调用print()和和println()方法可以向显示器输出数据。方法可以向显示器输出数据。 nPrintStream类类public class PrintStream extends FilterOutputStream public void print(boo

11、lean b) public void print(char c) public void print(long l) public void print(int i) public void print(float f) public void print(double d) public void print(String s) public void print(Object obj) public void println()9.2.2 Java9.2.2 Java标准输入标准输入/ /输出输出 【例9.1】 标准输入/输出图图9.5 标准输入过程标准输入过程 输入”abc123”键盘

12、标准输入流程序读取标准输入流System.in.read()对字节数组进行操作01234567851197 98 99 49 50 51 13 10字节数组buffer实际读入8 个字节System.in.read()会抛出异常abc123对应字符显示器程序System.out.println(count=+count);99111 117 110 11661561310不会抛出异常写入coun标准输出流对应字符缓冲区t=8图图9.6 标准输出过程标准输出过程9.2.3 9.2.3 文件字节流文件字节流1、文件字节输入流文件字节输入流(FileInputStream)用于用于从文件读数据从文件

13、读数据。构造方法构造方法npublic FileInputStream (String name) throws FileNotFoundExceptionnpublic FileInputStream (File file) throws FileNotFoundException读取字节的方法读取字节的方法npublic int read() throws IOExceptionnpublic int read(byte b) throws IOExceptionnpublic int read(byte b ,int off , int len) throws IOException关闭

14、输入流关闭输入流npublic void close() throws IOException例子:例子:FileInputStream fin = new FileInputStream (“文件文件1”); /创建创建“文件文件1”的输入流对象的输入流对象count = fin.read(buffer); /从文件从文件1中读取的数据放入数组中读取的数据放入数组buffer中,中, count中是返回读出中是返回读出的字节数,当返回的字节数,当返回-1时文件读完。时文件读完。fin.close(); /关闭输入流关闭输入流9.2.3 9.2.3 文件字节流文件字节流2、文件字节输出流、文件

15、字节输出流(FileOutputStream)用于用于向文件写数据向文件写数据。构造方法构造方法npublic FileOutputStream (String name) throws FileNotFoundExceptionnpublic FileOutputStream (File file) throws FileNotFoundExceptionnpublic FileOutputStream (String name, Boolean append) throws FileNotFoundException写入字节的方法写入字节的方法npublic int write(int b

16、) throws IOException npublic int write (byte b) throws IOException npublic int write (byte b ,int off , int len) throws IOException 关闭输出流关闭输出流npublic void close() throws IOException例子:例子: FileOutputStream fout = new FileOutputStream(“文件文件1”); /创建创建“文件文件1”的输出流对象的输出流对象 fout.write(buffer); /将将buffer数组中

17、的数据写入输出流,即写入到文件中。数组中的数据写入输出流,即写入到文件中。 fout.close(); /关闭输出流关闭输出流9.2.3 9.2.3 文件字节流文件字节流append:默认:默认falsentrue为添加方式,数据添加在原文件的末尾为添加方式,数据添加在原文件的末尾nfalse为重写方式,数据从原文件开始处写入,为重写方式,数据从原文件开始处写入,覆盖文件中原有的数据。覆盖文件中原有的数据。读文件时读文件时指定文件不存在,抛出异常;指定文件不存在,抛出异常;写文件时写文件时指定文件不存在,则创建一个新文件写指定文件不存在,则创建一个新文件写入数据。入数据。9.2.3 9.2.3

18、 文件字节流文件字节流 【例例9.2】 使用文件字节输入使用文件字节输入/输出流输出流实现文件的输入实现文件的输入/输出操作。输出操作。n文件输入操作文件输入操作n文件输出操作文件输出操作n文件复制操作文件复制操作 9.2.4 9.2.4 数据字节流数据字节流 数据流允许程序按与机器无关的风格读取或写数据流允许程序按与机器无关的风格读取或写入数据。可以读取或写入任何入数据。可以读取或写入任何Java类型数据。类型数据。数据输入流数据输入流DataInputStream数据输出流数据输出流DataOutputStream以前只能写字节数据以前只能写字节数据现在任何现在任何JAVAJAVA数据数据

19、类型的数据都能写类型的数据都能写了!了!数据字节流是在字节流的基础上对数据进行加工!数据字节流是在字节流的基础上对数据进行加工!真正进行传输的还是字节流!真正进行传输的还是字节流!9.2.4 9.2.4 数据字节流数据字节流nDataInputStream类类public class DataInputStream extends FilterInputStream implements DataInput public DataInputStream(InputStream in) /构造方法构造方法 public final short readShort() throws IOExcep

20、tion public final byte readByte() throws IOException public final int readInt() throws IOException /读取一个整型读取一个整型 public final long readLong() throws IOException public final float readFloat() throws IOException public final double readDouble() throws IOException public final char readChar() throws I

21、OException /读取一个字符读取一个字符 public final boolean readBoolean() throws IOException 当输入流结束时,抛出当输入流结束时,抛出EOFException异常;异常;发生发生I/O错误时,抛出错误时,抛出IOEception异常。异常。FileInputStream fin = new FileInputStream (“文件文件1”); /创建创建“文件文件1”的输入流对象的输入流对象DataInputStream din = new DataInputStream(fin);int arrInt = din.readInt

22、();/从从“文件文件1”中读取一个中读取一个int类型数据放入类型数据放入arrInt变量中。变量中。din.close();fin.close(); /关闭输入流关闭输入流9.2.4 9.2.4 数据字节流数据字节流nDataOutputStream类类public class DataOutputStream extends FilterOutputStream implements DataOutput public DataOutputStream(OutputStream out) /构造方法构造方法 public final void writeByte(int v) throw

23、s IOException public final void writeShort(int v) throws IOException public final void writeInt(int v) throws IOException /写入一个整型写入一个整型 public final void writeLong(long v) throws IOException public final void writeFloat(float v) throws IOException public final void writeDouble(double v) throws IOExc

24、eption public final void writeChar(int v) throws IOException /写入一个字符写入一个字符 public final void writeBoolean(boolean v) throws IOException public final void writeChars(String s) throws IOException public final int size() /返回实际写入的字节数返回实际写入的字节数 FileOutputStream fout = new FileOutputStream(“文件文件1”); /创建创建

25、“文件文件1”的输出流对象的输出流对象 DataOutputStream dout = new DataOutputStream(fout); dout.writeInt(arrInt); /将将int 类型变量类型变量arrInt中的数据写入输出流,即写入到文件中。中的数据写入输出流,即写入到文件中。 dout.close(); fout.close(); /关闭输出流关闭输出流9.2.4 9.2.4 数据字节流数据字节流【例例9.3】 将将Fibonacci序列值写入一个整序列值写入一个整数类型文件中。数类型文件中。n数据写入文件的思路同标准输出数据写入文件的思路同标准输出n捕获异常控制输

26、入结束捕获异常控制输入结束 9.2.5 9.2.5 对象字节流对象字节流 对象流可以对象流可以直接写入或读取一个对象直接写入或读取一个对象。对。对象流分为:象流分为:n对象输入流对象输入流ObjectInputStream;n对象输出流对象输出流ObjectOutputStream。 它们必须它们必须建立在其他流之上建立在其他流之上。传输的关键是把。传输的关键是把有特殊结构的有特殊结构的对象进行序列化对象进行序列化,然后通过其他,然后通过其他流来进行传输。流来进行传输。9.2.5 9.2.5 对象字节流对象字节流n对象输入流对象输入流ObjectInputStream:用于恢复那些序列化:用于

27、恢复那些序列化的对象。的对象。构造方法:构造方法: public ObjectInputStream(InputStream in) throws IOException,StreamCorruptedException实例方法:实例方法: Public final Object readObject() throws OptionalDataException,ClassNotFoundException,IOException 读取时,需要将其强制转换为期望的类型。读取时,需要将其强制转换为期望的类型。 FileInputStream fin = new FileInputStream (

28、“文件文件1”); /创建创建“文件文件1”的输入流对象的输入流对象ObjectInputStream din = new ObjectInputStream (fin);arrInt = (强制类型转换强制类型转换)din.readObject();/从文件从文件1中读取一个对象数据放入对象变量中读取一个对象数据放入对象变量arrInt中。中。din.close();fin.close(); /关闭输入流关闭输入流9.2.5 9.2.5 对象字节流对象字节流n对象输出流对象输出流ObjectOutputStream:将:将 Java 对象的基本数对象的基本数据类型写入据类型写入 Output

29、Stream。构造方法:构造方法:public ObjectOutputStream(OutputStream Out) throws IOException实例方法:实例方法:Public final void writeObject (Object obj) throws IOException FileOutputStream fout = new FileOutputStream(“文件文件1”); /创建创建“文件文件1”的输出流对象的输出流对象 ObjectOutputStream dout = new ObjectOutputStream (fout); dout. writeO

30、bject(arrInt); /将对象将对象arrInt写入输出流,即写入到文件中。写入输出流,即写入到文件中。 dout.close(); fout.close(); /关闭输出流关闭输出流9.2.5 9.2.5 对象字节流对象字节流序列化与序列化与Serializable接口接口n由于一个类的对象包含多种信息,为了保证从对象流中能够读由于一个类的对象包含多种信息,为了保证从对象流中能够读取到正确的对象,要求所有写入对象流的对象都必须是取到正确的对象,要求所有写入对象流的对象都必须是序列化序列化的对象的对象。n一个类如果实现了序列化一个类如果实现了序列化Serializable接口,那么这个

31、类的对接口,那么这个类的对象就是象就是序列化的对象序列化的对象。nSerializable接口中没有方法,因此实现该接口的类不需要实接口中没有方法,因此实现该接口的类不需要实现额外的方法。一个序列化的子类对象也是序列化的。现额外的方法。一个序列化的子类对象也是序列化的。n如果一个对象的成员变量是一个对象,那么这个对象的数据成如果一个对象的成员变量是一个对象,那么这个对象的数据成员也会被保存。员也会被保存。n如果一个可序列化的对象包含对某个不可序列化的对象的引用,如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个那么整个序列化操作将会失败,并且会抛

32、出一个NotSerializableException。【例例9.49.4】 使用对象流将若干学生对象写入以对象为基本类型的记录式文件中使用对象流将若干学生对象写入以对象为基本类型的记录式文件中图图9.7 9.7 各种输入各种输入/ /输出流及其读输出流及其读/ /写方法写方法 字节数组buffer基本数据类型变量i键盘文件输入流显示器文件对象objSystem.in.read(buffer)DataInputStreamreadInt()ObjectInputStreamreadObject()FileInputStreamread(buffer)FileInputStream输出流Syst

33、em.out.print(i)ObjectInputStreamwriteObject(obj)FileOutputStreamwrite(buffer)FileOutputStreamSystem.out.print(obj.toString()DataOutputStreamwriteInt(i)9.3 9.3 字符输入字符输入/ /输出流类输出流类9.3.1 抽象字符流抽象字符流9.3.2 文件字符流文件字符流9.3.3 缓冲字符流缓冲字符流9.3.1 9.3.1 抽象字符流抽象字符流1.字符输入流字符输入流Reader 为所有面向字符的输入流的超类。声明为为所有面向字符的输入流的超类。

34、声明为java.io中中的抽象类。的抽象类。 public abstract class Reader extend Object2.字符输出类字符输出类Writer 为所有面向字符的输出流的超类。声明为为所有面向字符的输出流的超类。声明为java.io中中的抽象类。的抽象类。 public abstract class Writer extend Object 文件字符流文件字符流字符缓冲流字符缓冲流9.3.1 9.3.1 抽象字符流抽象字符流nReader类类public abstract class Reader extends Object implements Readable, C

35、loseable public int read() throws IOException public int read(char cbuf) throws IOException abstract public int read(char cbuf, int off, int len) throws IOException; abstract public void close() throws IOException;9.3.1 9.3.1 抽象字符流抽象字符流nWriter类类public abstract class Writer implements Appendable, Clo

36、seable, Flushable public void write(int c) throws IOException/c的低的低16位写入位写入 public void write(char cbuf) throws IOException public void write(char cbuf, int off,int len) throws IOException public void write(String str) throws IOException public void write(String str,int off,int len) throws IOExcepti

37、on public abstract void flush() throws IOException public abstract void close() throws IOException 9.3.2 9.3.2 文件字符流文件字符流n文件字符流文件字符流FileReader和和FileWriter类:类: 用于用于文件字符的输入输出文件字符的输入输出处理,与文件字节流类处理,与文件字节流类FileInputStream、FileOutputStream的功能相似。的功能相似。 FileReader文件字符输入流:文件字符输入流:npublic FileReader(File file

38、) throws FileNotFoundExceptionnpublic FileReader(String fileName) throws FileNotFoundExceptionnpublic int read() throws IOException npublic int read(char cbuf) throws IOException FileReader fin = new FileReader (“文件文件1”);/创建创建“文件文件1”的输入流对象的输入流对象fin.read(cbuf) ; /从文件字符输入流中读取到一个字符数组从文件字符输入流中读取到一个字符数组f

39、in.close();/关闭输出流关闭输出流9.3.2 9.3.2 文件字符流文件字符流n文件字符流文件字符流FileReader和和FileWriter类:类: 用于用于文件字符的输入输出文件字符的输入输出处理,与文件字节流类处理,与文件字节流类FileInputStream、FileOutputStream的功能相似。的功能相似。 FileWriter文件字符输出流文件字符输出流:npublic FileWriter(File file) throws IOExceptionnpublic FileWriter(String filename, Boolean append) throws

40、 IOExceptionnpublic void write(int c) throws IOExceptionnpublic void write(char cbuf) throws IOExceptionnpublic void write(String str) throws IOException /将字符串写入输出流将字符串写入输出流FileWriter fout = new FileWriter(“文件文件1”);/创建创建“文件文件1”的输出流对象的输出流对象fout.write(“abc); /向文件字符输出流写入一个字符串向文件字符输出流写入一个字符串fout.close()

41、;/关闭输出流关闭输出流9.3.3 9.3.3 缓冲字符流缓冲字符流n字符缓冲流字符缓冲流BufferedReader和和BufferedWriter类:类:字符缓冲输入流字符缓冲输入流BufferedReadernpublic BufferedReader(Reader in)npublic BufferedReader(Reader in, int sz) / sz缓冲区长度缓冲区长度npublic String readLine() throws IOException /读取一行字符串,输入流结束时返回读取一行字符串,输入流结束时返回null字符缓冲输出流字符缓冲输出流Buffered

42、Writer类类npublic BufferedWriter(Writer out)npublic BufferedWriter(Writer out, int sz) / sz缓冲区长度缓冲区长度npublic void newLine() throws IOException /写入换行符。写入换行符。【例例9.5】 将将Fibonacci序列值写入一个文本文件中。序列值写入一个文本文件中。FileReader fin = new FileReader(“文件文件1”);BufferedReader bin = new BufferedReader(fin);/创建创建“文件文件1”的输出

43、流对象的输出流对象aline = bin.readLine();/读取一行字符串,输入流结束时返回读取一行字符串,输入流结束时返回nullbin.close();fin.close();9.4 9.4 文件操作文件操作9.4.1 文件操作类文件操作类9.4.2 文件过滤器接口文件过滤器接口9.4.3 文件对话框组件文件对话框组件9.4.4 随机存取文件类随机存取文件类文件操作文件操作文件操作类文件操作类nFile文件类:记载文件属性信息,是对文件进行操作文件类:记载文件属性信息,是对文件进行操作的手段。的手段。n文件文件顺序顺序存取:采用流的方式,不同类型文件需要使存取:采用流的方式,不同类型

44、文件需要使用不同的流类。用不同的流类。n文件文件随机随机存取:采用存取:采用RandomAccessFile随机存取文随机存取文件类。件类。文件操作类文件操作类 File类的对象,表示了类的对象,表示了磁盘上的磁盘上的文件文件或或目录目录,保保存它们的各种存它们的各种属性属性并提供各种并提供各种操作操作方法方法,如文件名、,如文件名、长度、最后修改时间、是否只读等;获得当前文件路长度、最后修改时间、是否只读等;获得当前文件路径名、判断文件是否存在、创建文件、删除文件等。径名、判断文件是否存在、创建文件、删除文件等。File类声明如下:类声明如下: public class File exten

45、ds Object implement Serializable, Comparable文件操作类文件操作类构造方法构造方法nPublic File(String pathname)nPublic File(File path , String name)nPublic File(String path , String name)例如:例如:文件的建立文件的建立File f1=new File(“myfile.txt”);File f1=new File(“myfile.txt”);File f2=new File f2=new File(“mydir”,“myfile.txt”);File

46、(“mydir”,“myfile.txt”);File myDir=new File(“etc”);File myDir=new File(“etc”);File f3=new File(myDir,“myfile.txt”);File f3=new File(myDir,“myfile.txt”);例如:例如:目录文件的建立目录文件的建立 File myDir=new File(“myjava”); File myDir=new File(“myjava”);File dir=new File(“.”,“”);File dir=new File(“.”,“”);/dir/dir文件对象,表示

47、当前目录。文件对象,表示当前目录。File dir=new File(“./File dir=new File(“./”,“”);,“”);/dir/dir文件对象,表示当前目录上一级目录文件对象,表示当前目录上一级目录File myDir=new File(“File myDir=new File(“”,“”);,“”);/dir/dir文件对象,表示所在盘符根目录文件对象,表示所在盘符根目录文件操作类文件操作类 实例化一个实例化一个FileFile类对象,类对象,并不是真的生成并不是真的生成一个文件或目录,而只是生成一个文件或目录,而只是生成一个对文件和目录进行一个对文件和目录进行描述的对

48、象描述的对象。 例如,例如,new File(“myfile.txt”);new File(“myfile.txt”);并不会生成一个文件,而是描述有并不会生成一个文件,而是描述有这样一个文件;这样一个文件;new File(“etc”)new File(“etc”)也不是生成一个目录,而是对这也不是生成一个目录,而是对这个目录进行描述的对象,例如生成当前目录对象个目录进行描述的对象,例如生成当前目录对象new File(“.”,“”)new File(“.”,“”)当前目录已经是存在的所以只是生成一个对当前目录进行描述表示的对当前目录已经是存在的所以只是生成一个对当前目录进行描述表示的对象。

49、象。创建的方法:创建的方法:u public boolean createNewFile() throws public boolean createNewFile() throws IOExceptionIOException 当且仅当不存在具有此抽象路径名指定的名称的文件时,创建由此当且仅当不存在具有此抽象路径名指定的名称的文件时,创建由此抽象路径名指定的一个新的空文件。抽象路径名指定的一个新的空文件。u public boolean mkdir() public boolean mkdir() 创建此抽象路径名指定的目录。创建此抽象路径名指定的目录。例如:例如: 建立文件夹:建立文件夹:

50、child = new File(“myjava”);child = new File(“myjava”); child.mkdir(); child.mkdir();文件操作类文件操作类File类提供的方法类提供的方法(1)访问文件对象访问文件对象nPublic String getName()/返回文件名,不包含路径返回文件名,不包含路径nPublic String getPath ()/返回相对路径返回相对路径nPublic String getAbsolutePath ()/返回绝对路径返回绝对路径nPublic String getParent ()/返回父文件对象的路径名返回父文件

51、对象的路径名nPublic File getParentFile ()/返回父文件对象返回父文件对象(2)获得文件属性获得文件属性nPublic long length()nPublic boolean exists()nPublic long lastModified()npublic boolean isDirectory() npublic boolean isFile() 文件操作类文件操作类npublic boolean canRead()npublic boolean canWrite()npublic boolean isHidden()npublic boolean setRe

52、adOnly()npublic boolean setLastModified(long time)(3)文件操作文件操作npublic boolean createNewFile() throws IOException npublic boolean renameTo(File dest)npublic boolean delete()(4)目录操作目录操作npublic boolean mkdir()npublic String list()npublic File listFiles()【例例9.6】 当前目录文件列表。当前目录文件列表。文件过滤器接口文件过滤器接口FileFilter

53、和和FilenameFilter接口接口public interface FileFilter public boolean accept(File pathname)public interface FilenameFilter public boolean accept(File dir, String name)文件过滤器接口文件过滤器接口FileFilter和和FilenameFilter接口接口 accept() /文件过滤代码实现文件过滤代码实现获得文件列表时使用过滤器获得文件列表时使用过滤器nPublic String list(FilenameFilter filter)nPu

54、blic File listFiles(FilenameFilter filter)nPublic String list(FileFilter filter)【例例9.7】 带过滤器的文件名列表带过滤器的文件名列表FileDialog在在java.awt包中,是对话框的子类,分为两种。包中,是对话框的子类,分为两种。u打开(打开(open)文件对话框)文件对话框u保存(保存(save)文件对话框)文件对话框文件对话框的构造方法文件对话框的构造方法nPublic FileDialog(Frame parent)nPublic FileDialog(Frame parent, String title)nPublic FileDialog(Frame parent,

温馨提示

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

评论

0/150

提交评论