JAVA手稿File类1.file类提供了描述文件和目录的操作与管理方法;用来管理磁盘文件与目录2.file类在io包中,3.File类的实例是不可变的;也就是说,一旦创建,File对象表示的抽象路径名将永不改变。4.FILE类,此类的实例可能表示(也可能不表示)实际文件系统对象,如文件或目录。如果它表示这种对象,那么该对象驻留在一个分区中。分区是文件系统特定于操作系统的存储分区。一个存储设备(例如,物理磁盘驱动器、闪存、CD-ROM)可以包含多个分区。对象(如果有)将驻留在此路径名(绝对形式)某个祖先指定的分区上。5.文件系统可以实现对实际文件系统对象上的某些操作(比如,读、写、执行)进行限制。这些限制统称为访问权限。文件系统可以对一个对象设置多个访问权限。例如,一个设置可能适用于对象的所有者,另一个设置则可能适用于所有其他用户。对象上的访问权限可能导致此类(File类)的某些方法执行失败。6.为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类。在File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具体的文件或文件夹,所以以前曾有人建议将该类的类名修改成FilePath,因为该类也可以代表一个文件夹,更准确的说是可以代表一个文件路径。***************************************************************************抽象路径名的两个组件:1.一个可选的与系统有关的前缀字符串,比如盘符,/表示UNIX中的根目录,\\\\表示MicrosoftWindowsUNC路径名。2.零个或更多字符串名称的序列。3.抽象路径名中的第一个名称是目录名,对于MicrosoftWindowsUNC路径名则是主机名。抽象路径名中第一个名称之后的每个名称表示一个目录;最后一个名称既可以表示目录,也可以表示文件。空抽象路径名没有前缀和名称序列4.无论是抽象路径名还是路径名字符串,都可以是绝对路径名或相对路径名。5.绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件。相反,相对路径名必须使用取自其他路径名的信息进行解释。默认情况下,java.io包中的类总是根据当前用户目录来解析相对路径名。此目录由系统属性user.dir指定,通常是Java虚拟机的调用目录。6.调用此类的getParent()方法可以获取抽象路径名的父路径名,它由路径名前缀以及路径名名称序列中的每个名称(最后一个除外)组成。对于任何具有绝对抽象路径名的File对象,如果其绝对抽象路径名以某个目录的绝对路径名开头,那么该目录的绝对路径名是该File对象的祖先。例如,抽象路径名/usr表示的目录是路径名/usr/local/bin所表示目录的一个祖先。关于前缀:在处理UNIX平台的根目录,以及MicrosoftWindows平台的盘符、根目录和UNC路径名时,将用到前缀这一概念。如下所示:对于UNIX平台,绝对路径名的前缀始终是/。相对路径名没有前缀。表示根目录的绝对路径名的前缀为/且名称序列为空。******************************************************************************************************************************对于MicrosoftWindows平台,包含盘符的路径名前缀由驱动器号和一个:组成。如果路径名是绝对路径名,还可能后跟\\。UNC路径名的前缀是\\\\;主机名和共享名是名称序列中的前两个名称。没有指定驱动器的相对路径名没有前缀。************************************************************************7.File类的构造方法:(1)Filef1=newFile(Stringpath)参数:path-路径名字符串抛出:NullPointerException-如果path参数为null(2)Filef2=newFile(Stringpath,Stringname)根据path路径名字符串和name路径名字符串创建一个新File实例。如果path为null,则创建一个新的File实例,这与调用以给定name路径名字符串作为参数的单参数File构造方法效果一样。否则,path路径名字符串用于表示目录,name路径名字符串用于表示目录或文件。如果name路径名字符串是绝对路径名,则用与系统有关的方式将它转换为一个相对路径名。如果path是空字符串,则通过将name转换为抽象路径名,并根据与系统有关的默认目录解析结果来创建新的File实例。否则,将每个路径名字符串转换为一个抽象路径名,并根据父抽象路径名解析子抽象路径名。参数:Path-父路径名字符串Name-子路径名字符串抛出:NullPointerException-如果name为null(3)Filef3=newFile(Filedir,Stringname)根据dir抽象路径名和name路径名字符串创建一个新File实例。如果dir为null,则创建一个新的File实例,这与调用给定name路径名字符串的单参数File构造方法的效果一样。否则,dir抽象路径名用于表示目录,name路径名字符串用于表示目录或文件。如果name路径名字符串是绝对路径名,则用与系统有关的方式将它转换为一个相对路径名。如果dir是空抽象路径名,则通过将name转换为抽象路径名,并根据与系统有关的默认目录解析结果来创建新的File实例。否则,将每个路径名字符串转换为一个抽象路径名,并根据父抽象路径名解析子抽象路径名。参数:Dir-父抽象路径名Name-子路径名字符串抛出:NullPointerException-如果name为null8..File类的exists用法;publicbooleanexists()判断文件或目录是否存在;存在返回true,反之返回false;举例Filef1=newFile(”java.txt”);Booleanb=f1.exists();System.out.print(b);9.File类的isfileisdirectorypublicbooleanisFile()判断是文件还是目录publicbooleanisDirectory()判断是文件还是目录方法名第二单词第一字母必须大写返回布尔值,前者是文件返回true,后者是目录返回true;举例Filef1=newFile(”java.txt”);Booleanb=f1.isFile();Booleanc=f1.isDirectory();System.out.print(b);System.out.print(c);10.File类的getNamegetpathpublicStringgetName()返回文件名或目录名publicStringgetPath()返回文件或目录的路径。方法名第二单词第一字母必须大写返回字符串类型;举例Filef1=newFile(“java.txt”);Stringst=f1.getName();Stringst2=f1.getPath();String.out.print(st);String.out.print(st2);11.File类的lengthpubliclonglength()获取文件的长度,返回long型值;举例Filef1=newFile(“java.tex”);Longt=f1.length();System.out.print(t);12.File类的listpublicString[]list()将目录中的所有文件名保存在字符串数组中,返回值是字符串型的数组;举例Filef1=newFile(F:\\java\\srsc);String[]str;str=f1.list();for(inti=0;istr.length;i++){System.out.println(str[i]);13.File类的listFilespublicFile[]listFiles()该方法的作用是返回当前文件夹下所有的文件对象,绝对路径下的文件和文件夹返回类型为File数组;举例Filef1=newFile(F:\\java\\srsc);String[]str;File[]str1;str=f1.list();str1=f1.listFiles();for(inti=0;istr.length;i++){System.out.println(str[i]);}for(inti=0;istr1.length;i++){System.out.println(str1[i]);}14.File类的list与listFiles的区别;List()与listfile()的区别是有无路径的输出;前者的输出不带路径名,后者的输出带有完整的路径名;举例Filef1=newFile(F:\\java\\srsc);String[]str;File[]str1;str=f1.list();str1=f1.listFiles();for(inti=0;istr.length;i++){System.out.println(str[i]);}for(inti=0;istr1.length;i++){System.out.println(str1[i]);}输出内容如下:F:\java\srscjavatest5test.javatest.classtest2.javahello.classtest2.classtest3.classtest4.javatest4.classtest5.java新建文本文档.txttest5.classF:\java\srsc\test.javaF:\java\srsc\test.classF:\java\srsc\test2.javaF:\java\srsc\hello.classF:\java\srsc\test2.classF:\java\srsc\test3.classF:\java\srsc\test4.javaF:\java\srsc\test4.classF:\java\srsc\test5.javaF:\java\srsc\新建文本文档.txtF:\java\srsc\test5.classJAVA精典代码示例精典代码一1./*读取文件*/2.importjava.io.FileInputStream;3.importjavax.swing.JOptionPane;4.classExample8_15.{publicstaticvoidmain(Stringargs[])6.{bytebuffer[]=newbyte[2056];7.Stringstr;8.try{9.Filefile=newFile(d:/jtest/test.dat);10.FileInputStreamfileInput=newFileInputStream(file);11.intbytes=fileInput.read(buffer,0,2056);//读到的字节数12.str=newString(buffer,0,bytes);13.}14.catch(Exceptione)15.{16.str=e.toString();17.}18.JOptionPane.showMessageDialog(null,str);19.System.exit(0);//退出程序20.}21.}精典代码二1./*随机流*/2.importjava.io.*;3.classExample8_44.{5.publicstaticvoidmain(String[]args)6.{7.try{8.RandomAccessFilef=newRandomAcc