版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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
6、 字节输入字节输入/ /输出流类输出流类 9.2.1 抽象字节流抽象字节流 9.2.2 Java标准输入标准输入/输出输出 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; /返回读取的一个字
7、节,抽象方法返回读取的一个字节,抽象方法 public int read(byte b) throws IOException /读取若干字节到指定缓冲区读取若干字节到指定缓冲区b,返回实际读取的字节数,返回实际读取的字节数 public void close() throws IOException /关闭输入流关闭输入流 InputStream类的子类 字节流字节流 n字节输出流类字节输出流类OutputStream:所有面向字节的输出流超类。:所有面向字节的输出流超类。 public abstract class OutputStream extends Object implement
8、s Closeable, Flushable public abstract void write(int b) throws IOException; /写入一个字节,抽象方法写入一个字节,抽象方法 public void write(byte b) throws IOException /将缓冲区中的若干字节写入输出流将缓冲区中的若干字节写入输出流 public void flush() throws IOException /立即传输立即传输 public void close() throws IOException /关闭输出流关闭输出流 OutputStream类的子类 字节流字节
9、流 1、字节输入流、字节输入流InputStream类类 :所有面向字节的输:所有面向字节的输 入流的超类。入流的超类。 2、字节输出流、字节输出流OutputStream类:所有面向字节的类:所有面向字节的 输出流的超类。输出流的超类。 字节流相关内容:字节流相关内容: 标准输入标准输入/ /输出流输出流 文件字节流文件字节流 数据字节流数据字节流 对象字节流对象字节流 9.2.2 Java9.2.2 Java标准输入标准输入/ /输出输出 n标准输入标准输入/输出常量输出常量 public final class System extends Object public final sta
10、tic InputStream in /标准输入常量标准输入常量 public final static PrintStream out /标准输出常量标准输出常量 public final static PrintStream err/标准错误输出常量标准错误输出常量 System.in是是InputStream类的常量对象,调用类的常量对象,调用read()方法可方法可 以从键盘接收数据;以从键盘接收数据; System.out是是PrintStream类的常量对象,调用类的常量对象,调用print()和和 println()方法可以向显示器输出数据。方法可以向显示器输出数据。 nPrin
11、tStream类类 public class PrintStream extends FilterOutputStream public void print(boolean 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
12、() 9.2.2 Java9.2.2 Java标准输入标准输入/ /输出输出 【例9.1】 标准输入/输出 图图9.5 标准输入过程标准输入过程 输入 ”abc123” 键盘 标准输入流 程序 读取标准输入流 System.in.read() 对字节数组 进行操作 012345678511 97 98 99 49 50 51 13 10 字节数组 buffer 实际读入8 个字节 System.in.read() 会抛出异常 abc123 对应 字符 显示器 程序 System.out.println(count=+count);99111 117 110 11661561310 不会抛出异常
13、 写入 coun 标准输出流 对应字符 缓冲区 t=8 图图9.6 标准输出过程标准输出过程 9.2.3 9.2.3 文件字节流文件字节流 1、文件字节输入流文件字节输入流(FileInputStream)用于用于从文件读数据从文件读数据。 构造方法构造方法 npublic FileInputStream (String name) throws FileNotFoundException npublic FileInputStream (File file) throws FileNotFoundException 读取字节的方法读取字节的方法 npublic int read() thro
14、ws IOException npublic int read(byte b) throws IOException npublic int read(byte b ,int off , int len) throws IOException 关闭输入流关闭输入流 npublic void close() throws IOException 例子:例子: FileInputStream fin = new FileInputStream (“文件文件1”); /创建创建“文件文件1”的输入流对象的输入流对象 count = fin.read(buffer); /从文件从文件1中读取的数据放入
15、数组中读取的数据放入数组buffer中,中, count中是返回读出中是返回读出 的字节数,当返回的字节数,当返回-1时文件读完。时文件读完。 fin.close(); /关闭输入流关闭输入流 9.2.3 9.2.3 文件字节流文件字节流 2、文件字节输出流、文件字节输出流(FileOutputStream)用于用于向文件写数据向文件写数据。 构造方法构造方法 npublic FileOutputStream (String name) throws FileNotFoundException npublic FileOutputStream (File file) throws FileNo
16、tFoundException npublic FileOutputStream (String name, Boolean append) throws FileNotFoundException 写入字节的方法写入字节的方法 npublic int write(int b) throws IOException npublic int write (byte b) throws IOException npublic int write (byte b ,int off , int len) throws IOException 关闭输出流关闭输出流 npublic void close(
17、) throws IOException 例子:例子: FileOutputStream fout = new FileOutputStream(“文件文件1”); /创建创建“文件文件1”的输出流对象的输出流对象 fout.write(buffer); /将将buffer数组中的数据写入输出流,即写入到文件中。数组中的数据写入输出流,即写入到文件中。 fout.close(); /关闭输出流关闭输出流 9.2.3 9.2.3 文件字节流文件字节流 append:默认:默认false ntrue为添加方式,数据添加在原文件的末尾为添加方式,数据添加在原文件的末尾 nfalse为重写方式,数据从
18、原文件开始处写入,为重写方式,数据从原文件开始处写入, 覆盖文件中原有的数据。覆盖文件中原有的数据。 读文件时读文件时指定文件不存在,抛出异常;指定文件不存在,抛出异常; 写文件时写文件时指定文件不存在,则创建一个新文件写指定文件不存在,则创建一个新文件写 入数据。入数据。 9.2.3 9.2.3 文件字节流文件字节流 【例例9.2】 使用文件字节输入使用文件字节输入/输出流输出流 实现文件的输入实现文件的输入/输出操作。输出操作。 n文件输入操作文件输入操作 n文件输出操作文件输出操作 n文件复制操作文件复制操作 9.2.4 9.2.4 数据字节流数据字节流 数据流允许程序按与机器无关的风格
19、读取或写数据流允许程序按与机器无关的风格读取或写 入数据。可以读取或写入任何入数据。可以读取或写入任何Java类型数据。类型数据。 数据输入流数据输入流DataInputStream 数据输出流数据输出流DataOutputStream 以前只能写字节数据以前只能写字节数据 现在任何现在任何JAVAJAVA数据数据 类型的数据都能写类型的数据都能写 了!了! 数据字节流是在字节流的基础上对数据进行加工!数据字节流是在字节流的基础上对数据进行加工! 真正进行传输的还是字节流!真正进行传输的还是字节流! 9.2.4 9.2.4 数据字节流数据字节流 nDataInputStream类类 publi
20、c class DataInputStream extends FilterInputStream implements DataInput public DataInputStream(InputStream in) /构造方法构造方法 public final short readShort() throws IOException public final byte readByte() throws IOException public final int readInt() throws IOException /读取一个整型读取一个整型 public final long read
21、Long() throws IOException public final float readFloat() throws IOException public final double readDouble() throws IOException public final char readChar() throws IOException /读取一个字符读取一个字符 public final boolean readBoolean() throws IOException 当输入流结束时,抛出当输入流结束时,抛出EOFException异常;异常; 发生发生I/O错误时,抛出错误时,
22、抛出IOEception异常。异常。 FileInputStream fin = new FileInputStream (“文件文件1”); /创建创建“文件文件1”的输入流对象的输入流对象 DataInputStream din = new DataInputStream(fin); int arrInt = din.readInt(); /从从“文件文件1”中读取一个中读取一个int类型数据放入类型数据放入arrInt变量中。变量中。 din.close(); fin.close(); /关闭输入流关闭输入流 9.2.4 9.2.4 数据字节流数据字节流 nDataOutputStrea
23、m类类 public class DataOutputStream extends FilterOutputStream implements DataOutput public DataOutputStream(OutputStream out) /构造方法构造方法 public final void writeByte(int v) throws IOException public final void writeShort(int v) throws IOException public final void writeInt(int v) throws IOException /写入
24、一个整型写入一个整型 public final void writeLong(long v) throws IOException public final void writeFloat(float v) throws IOException public final void writeDouble(double v) throws IOException public final void writeChar(int v) throws IOException /写入一个字符写入一个字符 public final void writeBoolean(boolean v) throws I
25、OException public final void writeChars(String s) throws IOException public final int size() /返回实际写入的字节数返回实际写入的字节数 FileOutputStream fout = new FileOutputStream(“文件文件1”); /创建创建“文件文件1”的输出流对象的输出流对象 DataOutputStream dout = new DataOutputStream(fout); dout.writeInt(arrInt); /将将int 类型变量类型变量arrInt中的数据写入输出流
26、,即写入到文件中。中的数据写入输出流,即写入到文件中。 dout.close(); fout.close(); /关闭输出流关闭输出流 9.2.4 9.2.4 数据字节流数据字节流 【例例9.3】 将将Fibonacci序列值写入一个整序列值写入一个整 数类型文件中。数类型文件中。 n数据写入文件的思路同标准输出数据写入文件的思路同标准输出 n捕获异常控制输入结束捕获异常控制输入结束 9.2.5 9.2.5 对象字节流对象字节流 对象流可以对象流可以直接写入或读取一个对象直接写入或读取一个对象。对。对 象流分为:象流分为: n对象输入流对象输入流ObjectInputStream; n对象输出
27、流对象输出流ObjectOutputStream。 它们必须它们必须建立在其他流之上建立在其他流之上。传输的关键是把。传输的关键是把 有特殊结构的有特殊结构的对象进行序列化对象进行序列化,然后通过其他,然后通过其他 流来进行传输。流来进行传输。 9.2.5 9.2.5 对象字节流对象字节流 n对象输入流对象输入流ObjectInputStream:用于恢复那些序列化:用于恢复那些序列化 的对象。的对象。 构造方法:构造方法: public ObjectInputStream(InputStream in) throws IOException,StreamCorruptedException
28、实例方法:实例方法: Public final Object readObject() throws OptionalDataException,ClassNotFoundException,IOException 读取时,需要将其强制转换为期望的类型。读取时,需要将其强制转换为期望的类型。 FileInputStream fin = new FileInputStream (“文件文件1”); /创建创建“文件文件1”的输入流对象的输入流对象 ObjectInputStream din = new ObjectInputStream (fin); arrInt = (强制类型转换强制类型转换
29、)din.readObject(); /从文件从文件1中读取一个对象数据放入对象变量中读取一个对象数据放入对象变量arrInt中。中。 din.close(); fin.close(); /关闭输入流关闭输入流 9.2.5 9.2.5 对象字节流对象字节流 n对象输出流对象输出流ObjectOutputStream:将:将 Java 对象的基本数对象的基本数 据类型写入据类型写入 OutputStream。 构造方法:构造方法: public ObjectOutputStream(OutputStream Out) throws IOException 实例方法:实例方法: Public fi
30、nal void writeObject (Object obj) throws IOException FileOutputStream fout = new FileOutputStream(“文件文件1”); /创建创建“文件文件1”的输出流对象的输出流对象 ObjectOutputStream dout = new ObjectOutputStream (fout); dout. writeObject(arrInt); /将对象将对象arrInt写入输出流,即写入到文件中。写入输出流,即写入到文件中。 dout.close(); fout.close(); /关闭输出流关闭输出流 9
31、.2.5 9.2.5 对象字节流对象字节流 序列化与序列化与Serializable接口接口 n由于一个类的对象包含多种信息,为了保证从对象流中能够读由于一个类的对象包含多种信息,为了保证从对象流中能够读 取到正确的对象,要求所有写入对象流的对象都必须是取到正确的对象,要求所有写入对象流的对象都必须是序列化序列化 的对象的对象。 n一个类如果实现了序列化一个类如果实现了序列化Serializable接口,那么这个类的对接口,那么这个类的对 象就是象就是序列化的对象序列化的对象。 nSerializable接口中没有方法,因此实现该接口的类不需要实接口中没有方法,因此实现该接口的类不需要实 现额
32、外的方法。一个序列化的子类对象也是序列化的。现额外的方法。一个序列化的子类对象也是序列化的。 n如果一个对象的成员变量是一个对象,那么这个对象的数据成如果一个对象的成员变量是一个对象,那么这个对象的数据成 员也会被保存。员也会被保存。 n如果一个可序列化的对象包含对某个不可序列化的对象的引用,如果一个可序列化的对象包含对某个不可序列化的对象的引用, 那么整个序列化操作将会失败,并且会抛出一个那么整个序列化操作将会失败,并且会抛出一个 NotSerializableException。 【例例9.49.4】 使用对象流将若干学生对象写入以对象为基本类型的记录式文件中使用对象流将若干学生对象写入以
33、对象为基本类型的记录式文件中 图图9.7 9.7 各种输入各种输入/ /输出流及其读输出流及其读/ /写方法写方法 字节数组 buffer 基本数据类型 变量i 键盘 文件 输入流 显示器 文件 对象 obj System.in.read(buffer) DataInputStream readInt() ObjectInputStream readObject() FileInputStream read(buffer) FileInputStream 输出流 System.out.print(i) ObjectInputStream writeObject(obj) FileOutputS
34、tream write(buffer) FileOutputStream System.out.print( obj.toString() DataOutputStream writeInt(i) 9.3 9.3 字符输入字符输入/ /输出流类输出流类 9.3.1 抽象字符流抽象字符流 9.3.2 文件字符流文件字符流 9.3.3 缓冲字符流缓冲字符流 9.3.1 9.3.1 抽象字符流抽象字符流 1.字符输入流字符输入流Reader 为所有面向字符的输入流的超类。声明为为所有面向字符的输入流的超类。声明为java.io中中 的抽象类。的抽象类。 public abstract class R
35、eader extend Object 2.字符输出类字符输出类Writer 为所有面向字符的输出流的超类。声明为为所有面向字符的输出流的超类。声明为java.io中中 的抽象类。的抽象类。 public abstract class Writer extend Object 文件字符流文件字符流 字符缓冲流字符缓冲流 9.3.1 9.3.1 抽象字符流抽象字符流 nReader类类 public abstract class Reader extends Object implements Readable, Closeable public int read() throws IOExce
36、ption 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, Closeable, Flushable public void write(i
37、nt 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 IOException public abstract void flush() throw
38、s IOException public abstract void close() throws IOException 9.3.2 9.3.2 文件字符流文件字符流 n文件字符流文件字符流FileReader和和FileWriter类:类: 用于用于文件字符的输入输出文件字符的输入输出处理,与文件字节流类处理,与文件字节流类 FileInputStream、FileOutputStream的功能相似。的功能相似。 FileReader文件字符输入流:文件字符输入流: npublic FileReader(File file) throws FileNotFoundException npu
39、blic FileReader(String fileName) throws FileNotFoundException npublic int read() throws IOException npublic int read(char cbuf) throws IOException FileReader fin = new FileReader (“文件文件1”); /创建创建“文件文件1”的输入流对象的输入流对象 fin.read(cbuf) ; /从文件字符输入流中读取到一个字符数组从文件字符输入流中读取到一个字符数组 fin.close();/关闭输出流关闭输出流 9.3.2
40、9.3.2 文件字符流文件字符流 n文件字符流文件字符流FileReader和和FileWriter类:类: 用于用于文件字符的输入输出文件字符的输入输出处理,与文件字节流类处理,与文件字节流类 FileInputStream、FileOutputStream的功能相似。的功能相似。 FileWriter文件字符输出流文件字符输出流: npublic FileWriter(File file) throws IOException npublic FileWriter(String filename, Boolean append) throws IOException npublic voi
41、d write(int c) throws IOException npublic void write(char cbuf) throws IOException npublic void write(String str) throws IOException /将字符串写入输出流将字符串写入输出流 FileWriter fout = new FileWriter(“文件文件1”); /创建创建“文件文件1”的输出流对象的输出流对象 fout.write(“abc); /向文件字符输出流写入一个字符串向文件字符输出流写入一个字符串 fout.close();/关闭输出流关闭输出流 9.3.
42、3 9.3.3 缓冲字符流缓冲字符流 n字符缓冲流字符缓冲流BufferedReader和和BufferedWriter类:类: 字符缓冲输入流字符缓冲输入流BufferedReader npublic BufferedReader(Reader in) npublic BufferedReader(Reader in, int sz) / sz缓冲区长度缓冲区长度 npublic String readLine() throws IOException /读取一行字符串,输入流结束时返回读取一行字符串,输入流结束时返回null 字符缓冲输出流字符缓冲输出流BufferedWriter类类 n
43、public 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”的输出流对象
44、的输出流对象 aline = bin.readLine(); /读取一行字符串,输入流结束时返回读取一行字符串,输入流结束时返回null bin.close(); fin.close(); 9.4 9.4 文件操作文件操作 9.4.1 文件操作类文件操作类 9.4.2 文件过滤器接口文件过滤器接口 9.4.3 文件对话框组件文件对话框组件 9.4.4 随机存取文件类随机存取文件类 文件操作文件操作 文件操作类文件操作类 nFile文件类:记载文件属性信息,是对文件进行操作文件类:记载文件属性信息,是对文件进行操作 的手段。的手段。 n文件文件顺序顺序存取:采用流的方式,不同类型文件需要使存取:
45、采用流的方式,不同类型文件需要使 用不同的流类。用不同的流类。 n文件文件随机随机存取:采用存取:采用RandomAccessFile随机存取文随机存取文 件类。件类。 文件操作类文件操作类 File类的对象,表示了类的对象,表示了磁盘上的磁盘上的文件文件或或目录目录,保保 存它们的各种存它们的各种属性属性并提供各种并提供各种操作操作方法方法,如文件名、,如文件名、 长度、最后修改时间、是否只读等;获得当前文件路长度、最后修改时间、是否只读等;获得当前文件路 径名、判断文件是否存在、创建文件、删除文件等。径名、判断文件是否存在、创建文件、删除文件等。 File类声明如下:类声明如下: publ
46、ic class File extends 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
47、(“mydir”,“myfile.txt”);File(“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=n
48、ew File(“.”,“”); /dir/dir文件对象,表示当前目录。文件对象,表示当前目录。 File dir=new File(“./File dir=new File(“./”,“”);,“”); /dir/dir文件对象,表示当前目录上一级目录文件对象,表示当前目录上一级目录 File myDir=new File(“File myDir=new File(“”,“”);,“”); /dir/dir文件对象,表示所在盘符根目录文件对象,表示所在盘符根目录 文件操作类文件操作类 实例化一个实例化一个FileFile类对象,类对象,并不是真的生成并不是真的生成一个文件或目录,而只是生成
49、一个文件或目录,而只是生成 一个对文件和目录进行一个对文件和目录进行描述的对象描述的对象。 例如,例如,new File(“myfile.txt”);new File(“myfile.txt”);并不会生成一个文件,而是描述有并不会生成一个文件,而是描述有 这样一个文件;这样一个文件;new File(“etc”)new File(“etc”)也不是生成一个目录,而是对这也不是生成一个目录,而是对这 个目录进行描述的对象,例如生成当前目录对象个目录进行描述的对象,例如生成当前目录对象new File(“.”,“”)new File(“.”,“”) 当前目录已经是存在的所以只是生成一个对当前目录
50、进行描述表示的对当前目录已经是存在的所以只是生成一个对当前目录进行描述表示的对 象。象。 创建的方法:创建的方法: u public boolean createNewFile() throws public boolean createNewFile() throws IOExceptionIOException 当且仅当不存在具有此抽象路径名指定的名称的文件时,创建由此当且仅当不存在具有此抽象路径名指定的名称的文件时,创建由此 抽象路径名指定的一个新的空文件。抽象路径名指定的一个新的空文件。 u public boolean mkdir() public boolean mkdir() 创
51、建此抽象路径名指定的目录。创建此抽象路径名指定的目录。 例如:例如: 建立文件夹:建立文件夹:child = new File(“myjava”);child = new File(“myjava”); child.mkdir(); child.mkdir(); 文件操作类文件操作类 File类提供的方法类提供的方法 (1)访问文件对象访问文件对象 nPublic String getName()/返回文件名,不包含路径返回文件名,不包含路径 nPublic String getPath ()/返回相对路径返回相对路径 nPublic String getAbsolutePath ()/返回绝
52、对路径返回绝对路径 nPublic String getParent ()/返回父文件对象的路径名返回父文件对象的路径名 nPublic File getParentFile ()/返回父文件对象返回父文件对象 (2)获得文件属性获得文件属性 nPublic long length() nPublic boolean exists() nPublic long lastModified() npublic boolean isDirectory() npublic boolean isFile() 文件操作类文件操作类 npublic boolean canRead() npublic boo
53、lean canWrite() npublic boolean isHidden() npublic boolean setReadOnly() 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() np
54、ublic File listFiles() 【例例9.6】 当前目录文件列表。当前目录文件列表。 文件过滤器接口文件过滤器接口 FileFilter和和FilenameFilter接口接口 public interface FileFilter public boolean accept(File pathname) public interface FilenameFilter public boolean accept(File dir, String name) 文件过滤器接口文件过滤器接口 FileFilter和和FilenameFilter接口接口 accept() /文件过滤代码
55、实现文件过滤代码实现 获得文件列表时使用过滤器获得文件列表时使用过滤器 nPublic String list(FilenameFilter filter) nPublic 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, S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海银行职业规划
- 江西赣州市多校2025-2026学年高三下学期3月联考历史试题(解析版)
- 2026重庆垫江县太平镇人民政府全日制公益性岗位招聘3人备考题库附答案详解(b卷)
- 2026兴业银行宁德分行春季校园招聘备考题库及答案详解【全优】
- 2026广西来宾良塘镇人民政府招聘法律顾问备考题库附答案详解(突破训练)
- 2026山东济南市钢城区卫生健康局所属事业单位招聘9人备考题库及参考答案详解(模拟题)
- 2026中兴财经暑假实习生招聘备考题库及参考答案详解(b卷)
- 2026江苏徐州沛县产投集团招聘1人备考题库含答案详解(预热题)
- 2026福建福州市规划设计研究院集团有限公司招聘备考题库及参考答案详解(达标题)
- 2026四川资阳益福康养产业有限公司招聘2人备考题库附答案详解【完整版】
- 五年级下学期数学第三单元《长方体和正方体》
- 幼儿园班本课程《蒜出精彩》
- 肿瘤学-肿瘤姑息治疗
- 房屋无偿使用协议书范本
- DB32T3916-2020建筑地基基础检测规程
- 2024中国心衰器械白皮书-沙利文
- 人事档案情况摘抄表
- 正常分娩9版妇产科学课件
- 常见的六轴关节机器人的机械结构
- 2023年中国电信集团有限公司招聘笔试题库及答案解析
- HY/T 174-2014水下营养盐自动分析仪
评论
0/150
提交评论