当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Java.io.File用法及代码示例


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

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

如何创建文件对象?

File 对象是通过传入表示文件名称的字符串、String 或另一个 File 对象来创建的。例如,

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

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

Java 文件类中的字段

Field

Type

Description

pathSeperator String 用于分隔文件系统路径列表中各个路径的字符或字符串。
pathSeperatorChar Char 用于分隔文件系统路径列表中各个路径的字符。
separator String 默认名称分隔符表示为字符串。
separatorChar Char 默认名称分隔符。

Java 文件类的构造函数

  • 文件(文件父级,字符串子级):从父抽象路径名和子路径名字符串创建一个新的 File 实例。
  • 文件(字符串路径名):通过将给定路径名字符串转换为抽象路径名来创建新的 File 实例。
  • 文件(字符串父级,字符串子级):从父路径名字符串和子路径名字符串创建新的 File 实例。
  • 文件(URI uri):通过将给定的 file: URI 转换为抽象路径名来创建新的 File 实例。

方法 Java中的文件类

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

Java 文件类示例

示例 1:用于检查文件或目录是否实际存在的程序。

Java


// In this Java 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 writable:"
                               + 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 writable:true
Is readabletrue
Is a directory:false
File Size in bytes 20

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

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

String arr[]=f.list();

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

Java


// Java Program to display all
// the contents of a directory
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

相关帖子: Java 中的 FileReader 和 FileWriter



相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Java.io.File Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。