Java中的Java.io.File类

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)

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
  •   本文标题:Java中的Java.io.File类 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/5011.html
    扫描二维码添加微信 
  • ,领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘优惠券!添加微信后,分享淘宝选中的机械键盘给淘宝机器人即可领取!
    支持我们,就用微信淘宝!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注

    更多阅读