• Tags         
  • 2018-07-30  09:23:35        
  • 58 °C    

    File类是Java表示的文件或目录路径名。由于文件和目录名称在不同平台上具有不同的格式,因此简单的字符串不足以命名它们。File类包含几种处理路径名,删除和重命名文件,创建新目录,列出目录内容以及确定文件和目录的几个常用属性的方法。

    • 它是文件和目录路径名的抽象表示。
    • 路径名,无论是抽象路径还是字符串形式都可以是绝对路径名或相对路径名。可以通过调用此类的getParent()方法获取抽象路径名的父级。
    • 首先,我们应该通过将文件名或目录名传递给它来创建File类对象。文件系统可以对实际文件系统对象上的某些操作实施限制,例如读取,写入和执行。这些限制统称为访问权限。
    • File类的实例是不可变的; 也就是说,一旦创建,File对象表示的抽象路径名将永远不会改变。

    Java.io.File类如何创建文件对象?

    通过传入表示文件名或String或其他File对象的String来创建File对象。例如,

     File a = new File("/usr/local/bin/geeks");

    为目录/ usr / local / bin中的geeks文件定义一个抽象文件名。这是一个绝对的抽象文件名。

    Java.io.File类的构造函数

    • File(File parent,String child): 从父抽象路径名和子路径名字符串创建新的File实例。
    • File(String pathname): 通过将给定的路径名​​字符串转换为抽象路径名来创建新的File实例。
    • File(String parent,String child): 从父路径名字符串和子路径名字符串创建新的File实例。
    • File(URI url): 通过将给定文件:URI转换为抽象路径名来创建新的File实例。

    Java.io.File类的方法

    1. boolean canExecute(): 测试应用程序是否可以执行此抽象路径名表示的文件。
    2. boolean canRead():测试应用程序是否可以读取此抽象路径名表示的文件。
    3. boolean canWrite(): 测试应用程序是否可以修改此抽象路径名表示的文件。
    4. int compareTo(文件路径名):按 字典顺序比较两个抽象路径名。
    5. boolean createNewFile(): 以原子方式创建一个由此抽象路径名命名的新空文件。
    6. static File createTempFile(String prefix,String suffix): 在缺省临时文件目录中创建一个空文件。
    7. boolean delete(): 删除此抽象路径名表示的文件或目录。
    8. boolean equals(Object obj): 测试此抽象路径名与给定对象的相等性。
    9. boolean exists():测试此抽象路径名表示的文件或目录是否存在。
    10. String getAbsolutePath(): 返回此抽象路径名的绝对路径名字符串。
    11. long getFreeSpace(): 返回分区中未分配的字节数。
    12. String getName(): 返回此抽象路径名表示的文件或目录的名称。
    13. String getParent(): 返回此抽象路径名的父级的路径名字符串。
    14. File getParentFile(): 返回此抽象路径名父项的抽象路径名。
    15. String getPath(): 将此抽象路径名转换为路径名字符串。
    16. boolean isDirectory(): 测试此路径名表示的文件是否为目录。
    17. boolean isFile(): 测试此抽象路径名表示的文件是否为普通文件。
    18. boolean isHidden(): 测试此抽象路径名指定的文件是否为隐藏文件。
    19. long length(): 返回此抽象路径名表示的文件的长度。
    20. String [] list(): 返回命名目录中文件和目录的字符串数组。
    21. File [] listFiles(): 返回表示目录中文件的抽象路径名数组。
    22. boolean mkdir(): 创建此抽象路径名指定的目录。
    23. boolean renameTo(File dest): 重命名此抽象路径名表示的文件。
    24. boolean setExecutable(boolean executable): 一种设置所有者执行权限的便捷方法。
    25. boolean setReadable(boolean readable): 一种设置所有者读取权限的便捷方法。
    26. boolean setReadable(boolean readable,boolean ownerOnly): 设置所有者或每个人的读取权限。
    27. boolean setReadOnly(): 标记名为的文件或目录,以便只允许读取操作。
    28. boolean setWritable(boolean writable):一种设置所有者写入权限的便捷方法。
    29. String toString(): 返回此抽象路径名的路径名字符串。
    30. URI toURI(): 构造表示此抽象路径名的文件URI。

    程序1:用于检查文件或目录是否物理存在的程序。

    // In this program, we accepts a file or directory name from
    // command line arguments. Then the program will check if
    // that file or directory physically exist or not and
    // it displays the property of that file or directory.
    *import java.io.File;
    
    // Displaying file property
    class fileProperty
    {
        public static void main(String[] args) {
            //accept file name or directory name through command line args
            String fname =args[0];
    
            //pass the filename or directory name to File object
            File f = new File(fname);
    
            //apply File class methods on File object
            System.out.println("File name :"+f.getName());
            System.out.println("Path: "+f.getPath());
            System.out.println("Absolute path:" +f.getAbsolutePath());
            System.out.println("Parent:"+f.getParent());
            System.out.println("Exists :"+f.exists());
            if(f.exists())
            {
                System.out.println("Is writeable:"+f.canWrite());
                System.out.println("Is readable"+f.canRead());
                System.out.println("Is a directory:"+f.isDirectory());
                System.out.println("File Size in bytes "+f.length());
            }
        }
    }
    

    输出:

    File name :file.txt
    Path: file.txt
    Absolute path:C:\Users\akki\IdeaProjects\codewriting\src\file.txt
    Parent:null
    Exists :true
    Is writeable:true
    Is readabletrue
    Is a directory:false
    File Size in bytes 20

    程序2:程序显示目录的所有内容

    这里我们将接受键盘中的目录名称,然后显示目录的所有内容。为此,list()方法可以用作:

    String arr [] = f.list();

    在前面的语句中,list()方法导致所有目录条目都复制到数组arr []中。然后将这些数组元素arr [i]传递给File对象并测试它们以了解它们是否代表文件或目录。

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    //Displaying the contents of a directory
    class Contents
    {
        public static void main(String[] args) throws IOException {
            //enter the path and dirname from keyboard
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
            System.out.println("Enter dirpath:");
            String dirpath=br.readLine();
            System.out.println("Enter the dirname");
            String dname=br.readLine();
    
            //create File object with dirpath and dname
            File f = new File(dirpath, dname);
    
            //if directory exists,then
            if(f.exists())
            {
                //get the contents into arr[]
                //now arr[i] represent either a File or Directory
                String arr[]=f.list();
    
                //find no. of entries in the directory
                int n=arr.length;
    
                //displaying the entries
                for (int i = 0; i < n ; i++) {
                    System.out.println(arr[i]);
                    //create File object with the entry and test
                    //if it is a file or directory
                    File f1=new File(arr[i]);
                    if(f1.isFile())
                        System.out.println(": is a file");
                    if(f1.isDirectory())
                        System.out.println(": is a directory");
                }
                System.out.println("No of entries in this directory "+n);
            }
            else
                System.out.println("Directory not found");
        }
    }
    

    输出:

    Enter dirpath:
    C:\Users\akki\IdeaProjects\
    Enter the dirname
    codewriting
    .idea
    : is a directory
    an1.txt
    : is a file
    codewriting.iml
    : is a file
    file.txt
    : is a file
    out
    : is a directory
    src
    : is a directory
    text
    : is a file
    No of entries in this directory 7

     
    转载请保留页面地址:https://www.breakyizhan.com/java/5011.html