java程序设计ppt第9章.ppt
第第9章章 Java输入输出输入输出9.1 Java输入输出概述输入输出概述9.2 文文 件件 处处 理理9.3 目目 录录 管管 理理9.1 Java输入输出概述输入输出概述9.1.19.1.1输入输出流基本概念输入输出流基本概念9.1.29.1.2输入输出流类输入输出流类9.1.39.1.3标准输入输出标准输入输出9.2 文文 件件 处处 理理9.2.19.2.1FileFile类类文文件件处处理理是是最最常常见见的的I/O处处理理,在在编编程程过过程程中中,经经常常需需要要对对文文件件进进行行操操作作。在在对对文文件件进进行行操操作作前前,必必须须先先获获得得有有关关文文件件的的基基本本信信息息,如如文文件件的的名名称称、路路径径,文文件件的的长长度度及及文文件件是是否否可可读读可可写写等等。在在Java语语言言中中,java.io包包中中的的File类类实实现现了了这这一一功功能能。File类类通通过过文文件件名名列列表表来来描描述述一一个个文文件件对对象象的属性。的属性。通过通过File类提供的方法可以获得文件类提供的方法可以获得文件夹的基本信息,还可对文件进行复制、删夹的基本信息,还可对文件进行复制、删除等操作。需要说明的一点是,除等操作。需要说明的一点是,Java语言语言将目录看作是一种特殊的文件。在下面的将目录看作是一种特殊的文件。在下面的讲述中,我们统称为文件,只在需要时加讲述中,我们统称为文件,只在需要时加以区分。以区分。File类提供了与具体平台无关的方式类提供了与具体平台无关的方式来描述文件对象属性。下面是来描述文件对象属性。下面是File类中的部类中的部分主要方法。分主要方法。1构造方法构造方法文件对象的生成是通过文件对象的生成是通过File类的构造类的构造文件完成的。文件完成的。File类提供了以下类提供了以下3种构造方种构造方法。法。(1)public File(String pathname););参数参数pathname指明新创建的文件对象指明新创建的文件对象对应的磁盘文件及其路径名。路径可以是对应的磁盘文件及其路径名。路径可以是绝对路径也可以是相对路径。一般地,为绝对路径也可以是相对路径。一般地,为提高程序的可移植性,建议使用相对路径。提高程序的可移植性,建议使用相对路径。例如:例如:File myFile1=new File(test.txt);/相对路径,在当前目录下创建新文件,名相对路径,在当前目录下创建新文件,名为为test.txtFile myFile2=new File(c:temptest.txt);/绝对路径,在绝对路径,在C盘的盘的java目录下创建新文目录下创建新文件,名为件,名为test.txt(2)public File(String pathname,String name););参数参数pathname指明新创建的文件对象指明新创建的文件对象所对应的文件所在的路径,可以是绝对路所对应的文件所在的路径,可以是绝对路径或相对路径。参数径或相对路径。参数name指明新创建的文指明新创建的文件对象所对应文件的名称。将路径和名称件对象所对应文件的名称。将路径和名称分开可使具有相同路径的文件具有同一个分开可使具有相同路径的文件具有同一个路径字符串,而且方便管理。路径字符串,而且方便管理。例如:例如:File myFile=new File(c:java,test.txt);(3)public File(File dir,String childname);参数参数dir是一个是一个File类对象,它代表一类对象,它代表一个已存在的磁盘目录,该目录作为文件的个已存在的磁盘目录,该目录作为文件的路径。参数路径。参数childname指明文件名。指明文件名。例如:例如:File dir=new File(c:java);File myFile=new File(dir,test.txt);要要对对一一个个文文件件对对象象进进行行操操作作,不不可可避避免免地地要要用用到到表表9-2列列出出的的方方法法。下下面面我我们们通通过一个例子来说明这些方法如何使用。过一个例子来说明这些方法如何使用。例例 9-2:使使 用用 File类类 方方 法法 的的 程程 序序example9_2.java。import java.io.*;public class example9_2public static void main(String args)File myFile=new File(g:testtest.txt);System.out.println(myFile+文件存在吗文件存在吗?+myFile.exists();System.out.println(文件名:文件名:+myFile.getName();System.out.println(文件的相对路径文件的相对路径:+myFile.getPath();System.out.println(文件绝对路径文件绝对路径:+myFile.getAbsolutePath();System.out.println(上一级目录名上一级目录名:+myFile.getParent();System.out.println(文件长度文件长度:+myFile.length();System.out.println(是文件吗是文件吗?+myFile.isFile();System.out.println(是目录吗是目录吗?+myFile.isDirectory();System.out.println(是否可写是否可写?+myFile.canWrite();System.out.println(是否可读是否可读?+myFile.canRead();File file1=new File(file.txt);System.out.println(将文件将文件+myFile+改名为改名为+file1);myFile.renameTo(file1);System.out.println(新文件名:新文件名:+file1.getName();System.out.println(myFile+文件是否存在文件是否存在?+myFile.exists();System.out.println(删除文件删除文件+file1);file1.delete();System.out.println(file1+文件是否存在文件是否存在?+file1.exists();运行结果见图运行结果见图9-2。图图9-29.2.29.2.2文件输入输出流类文件输入输出流类1FileInputStream类类2FileOutputStream类类9.2.39.2.3文件的随机访问文件的随机访问1构造方法构造方法2读数据方法读数据方法3写数据方法写数据方法4控制文件指针方法控制文件指针方法5其他方法其他方法9.3 目目 录录 管管 理理例例9-6:显显示示当当前前工工作作目目录录下下的的目目录录和和文件信息的程序文件信息的程序example9_6.java。import java.io.*;class example9_6 public static void main(String args)int i;File dir=new File(System.getProperty(user.dir);if(dir.isDirectory()System.out.println(Directory of+dir);String dlist=dir.list();for(i=1;i=dlist.length&i20;i+)System.out.print(dlisti-1+t);if(i%5=0)System.out.println();if(i%10=0)System.out.println(按任意键继续按任意键继续);trychar ch=(char)System.in.read();catch(Exception e)System.out.println();System.out.println(共共+i+个文件个文件);运行结果见图运行结果见图9-6。图图9-6注注意意:System.getProperty()方方法法用用于于获得用户当前工作目录。获得用户当前工作目录。最最后后需需要要说说明明的的是是,并并不不是是所所有有的的Java程程序序都都支支持持文文件件或或目目录录操操作作。这这一一点点主主要要体体现现在在Applet程程序序上上。Applet程程序序通通常常是是从从网网络络上上下下载载到到本本地地机机器器上上运运行行的的,存存在在不不可可知知性性,因因此此出出于于安安全全性性考考虑虑,Java禁禁止止Applet程程序序访访问问和和读读取取本本地地文文件件。若若试试图图在在Applet程程序序中中使使用用文文件件操操作作,将将会会引引发发安安全全性性异异常常。在在以以后后的的编编程程过过程程中中,应注意这一点。应注意这一点。