文件操作--File

来源:互联网 发布:网络麻将群主违法吗 编辑:程序博客网 时间:2024/06/05 06:50

为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类。

         File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具体的文件或文件夹,所以以前曾有人建议将该类的类名修改成FilePath,因为该类也可以代表一个文件夹,更准确的说是可以代表一个文件路径。

         下面介绍一下File类的基本使用。

         1File对象代表文件路径

File类的对象可以代表一个具体的文件路径,在实际代表时,可以使用绝对路径也可以使用相对路径。

下面是创建的文件对象示例。

                   public File(String pathname)

         该示例中使用一个文件路径表示一个File类的对象,例如:

                   File f1 = new File(“d:\\test\\1.txt”);

                   File f2 = new File(“1.txt”);

                  File f3 = new File(“e:\\abc”);

这里的f1f2对象分别代表一个文件,f1是绝对路径,而f2是相对路径,f3则代表一个文件夹,文件夹也是文件路径的一种。

public File(String parent, String child)

                            也可以使用父路径和子路径结合,实现代表文件路径,例如:

                                     File f4 = new File(“d:\\test\\”,”1.txt”);

                            这样代表的文件路径是:d:\test\1.txt

         2File类常用方法

File类中包含了很多获得文件或文件夹属性的方法,使用起来比较方便,下面将常见的方法介绍如下:

                   acreateNewFile方法

                                     public boolean createNewFile() throws IOException

该方法的作用是创建指定的文件。该方法只能用于创建文件,不能用于创建文件夹,且文件路径中包含的文件夹必须存在。

                   bdelect方法

                                     public boolean delete()

该方法的作用是删除当前文件或文件夹。如果删除的是文件夹,则该文件夹必须为空。如果需要删除一个非空的文件夹,则需要首先删除该文件夹内部的每个文件和文件夹,然后在可以删除,这个需要书写一定的逻辑代码实现。

                   cexists方法

                                     public boolean exists()

                            该方法的作用是判断当前文件或文件夹是否存在。

                   dgetAbsolutePath方法

                                     public String getAbsolutePath()

该方法的作用是获得当前文件或文件夹的绝对路径。例如c:\test\1.t则返回c:\test\1.t

                   egetName方法

                                     public String getName()

                            该方法的作用是获得当前文件或文件夹的名称。例如c:\test\1.t,则返回1.t

                   fgetParent方法

                                     public String getParent()

                            该方法的作用是获得当前路径中的父路径。例如c:\test\1.t则返回c:\test

                   gisDirectory方法

                                     public boolean isDirectory()

                            该方法的作用是判断当前File对象是否是目录。

                   hisFile方法

                                     public boolean isFile()

                            该方法的作用是判断当前File对象是否是文件。

                   ilength方法

                                     public long length()

该方法的作用是返回文件存储时占用的字节数。该数值获得的是文件的实际大小,而不是文件在存储时占用的空间数。

                   jlist方法

                                     public String[] list()

该方法的作用是返回当前文件夹下所有的文件名和文件夹名称。说明,该名称不是绝对路径。

                   klistFiles方法

                                     public File[] listFiles()

                            该方法的作用是返回当前文件夹下所有的文件对象。

                   lmkdir方法

                                     public boolean mkdir()

该方法的作用是创建当前文件文件夹,而不创建该路径中的其它文件夹。假设d盘下只有一个test文件夹,则创建d:\test\abc文件夹则成功,如果创建d:\a\b文件夹则创建失败,因为该路径中d:\a文件夹不存在。如果创建成功则返回true,否则返回false

                   mmkdirs方法

                                     public boolean mkdirs()

该方法的作用是创建文件夹,如果当前路径中包含的父目录不存在时,也会自动根据需要创建。

                   nrenameTo方法

                                     public boolean renameTo(File dest)

该方法的作用是修改文件名。在修改文件名时不能改变文件路径,如果该路径下已有该文件,则会修改失败。

                   osetReadOnly方法

                                     public boolean setReadOnly()

                            该方法的作用是设置当前文件或文件夹为只读。


1、输出一"."开头的文件

package day01;import java.io.File;import java.io.FileFilter;/** * listFiles方法支持文件过滤器 * FileFilter接口 * 实现该接口需要实现抽象方法: * boolean accept(File f) * 该方法要求我们定义过滤条件 * listFiles方法会将当前目录下满足accept方法的子项返回 * @author Administrator * */public class FileDemo02 {public static void main(String[] args) {File dir=new File(".");if(dir.isDirectory()){//创建过滤器实例FileFilter filter=new MyFilter();//使用过滤器过滤子项File[] subs=dir.listFiles(filter);for(File sub: subs){System.out.println(sub.getName());}}}}class MyFilter implements FileFilter{public boolean accept(File file) {//String name=file.getName();//return name.startsWith(".");return file.getName().startsWith(".");}}

2、创建多级目录下的一个文件

package day01;import java.io.File;import java.io.IOException;/** * 创建多级目录下的一个文件 * @author Administrator * */public class FileDemo3 {public static void main(String[] args) throws IOException {  File file =new File(  "a"+File.separator+  "b"+File.separator+  "c"+File.separator+  "d"+File.separator+  "e"+File.separator+  "f"+File.separator+  "g"+File.separator+  "h.text"  );  /**   * 创建文件时,应该首先判断当前文件   * 所在的目录是否存在,不存在会抛出异常   */  /**   * File getParentFile()   * 获取当前文件或目录所在的父目录   */  File parent =file.getParentFile();  if(!parent.exists()){  parent.mkdirs();  }  if(!file.exists()){  file.createNewFile();  System.out.println("文件创建成功!");  }}}

3、判断文件是否存在,不存在创建文件

File file=new File(path+filename);       if(!file.exists())       {           try {               file.createNewFile();           } catch (IOException e) {               // TODO Auto-generated catch block               e.printStackTrace();           }       }  

4、判断文件夹是否存在,不存在创建文件夹

    File file =new File(path+filename);       //如果文件夹不存在则创建       if  (!file .exists())         {             file .mkdir();       }     



0 0