CodeGym /Java 博客 /随机的 /Java.io.文件类
John Squirrels
第 41 级
San Francisco

Java.io.文件类

已在 随机的 群组中发布
很多情况下,程序在工作中需要访问某些文件。例如,用户数据可以记录在某个外部文件中,为了读取它,程序需要能够使用它——打开、读取数据,可能还可以编辑和关闭。为此,Java 编程语言具有Java.io.File类。在本文中,我们将考虑它是什么类型,并给出使用它的示例。

什么是Java文件类

File类在java.io包中定义,它不能直接与流一起使用Java File类是管理文件和目录信息的。如您所知,在操作系统级别,文件和目录是不同的对象。然而在 Java 中,它们都由同一个File类描述。您可能想知道为什么不直接使用字符串来引用文件?首先,因为文件访问在不同的操作系统中是不同的。

文件类构造函数

根据Java.io.File类对象是否应表示文件或目录,我们可以使用其中一个构造函数来创建该对象: File(String pathname)在本例中,构造函数通过转换给定的路径名​​创建一个新的File实例字符串转换为抽象路径名。 File(String myPath, String myString)此构造函数从 myPath 路径名字符串和 myString 路径名字符串 创建一个新的File实例。File(File Parent, String name)从文件抽象路径名和名称路径名字符串 创建一个新的File实例。在本例中, File(URI uri)构造函数通过将给定的 file: URI 转换为抽象路径名来创建新的File实例。URI 是一个 Java 类,表示统一资源标识符 (URI) 引用。以下是不同Java.io.File类构造函数的示例:
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

public class FileTest {
   public static void main(String[] args) throws URISyntaxException {
       File myFile1 = new File("d:\\MyCat");
       File myFile2 = new File ("d:\\MyCat", "cat.txt");
       File myFile3 = new File(myFile1, "cat.txt");
       URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
       File myFile4 = new File(uri);
   }
}

文件类的方法

Java File类有许多允许您操作文件和目录的方法。让我们考虑其中的一些:
  • boolean createNewFile()在传递给构造函数的路径中创建一个新文件。如果成功则返回 true,否则返回 false

  • boolean delete()删除传递给构造函数的路径中的目录或文件。删除成功返回true

  • boolean contains()检查构造函数中指定的路径中是否存在文件或目录。如果文件或目录存在,则返回 true,否则返回 false

  • String getAbsolutePath()返回传递给对象构造函数的路径的绝对路径

  • String getName()返回文件或目录的短名称

  • String getParent()返回父目录的名称

  • 如果给定路径包含目录,则boolean isDirectory()返回 true

  • 如果给定路径中有文件,则boolean isFile()返回 true

  • 如果目录或文件隐藏,则boolean isHidden()返回 true

  • long length()返回文件的大小(以字节为单位)

  • long lastModified()返回文件或目录最后修改的时间。该值表示自 Unix 纪元以来已经过去的毫秒数

  • String[] list()返回特定目录中的文件和子目录的数组

  • File[] listFiles()返回特定目录中的文件和子目录的数组

  • boolean mkdir()创建一个新目录,如果成功则返回 true

  • boolean renameTo(File dest)重命名文件或目录

Java File 类的一些特性

  • 路径(抽象路径或字符串)可以是绝对路径或相对路径。抽象路径的父级可以通过调用该类的getParent()方法来检索。

  • 首先,我们应该创建File类的对象,并向其传递文件或目录的名称。文件系统可以对实际文件系统对象的某些操作施加限制,例如读、写和执行。这些限制称为访问权限。

  • File类的实例是不可变的。这意味着,一旦创建文件,File对象表示的抽象路径就永远不会改变。

文件类代码示例

让我们创建一个使用目录的程序。首先它应该在给定路径创建一个目录,然后创建一个新文件并检查文件和目录是否存在。
import java.io.File;
import java.io.IOException;

public class FileTest2 {
   public static void main(String[] args) throws IOException {

       //create a directory using mkdir() File class method
       File dir = new File("d:\\MyDir");
       boolean created = dir.mkdir();
       if(created)
           System.out.println("Folder has been created...");
       else
           System.out.println("Folder hasn't been created...");
       File myFile = new File("d:\\MyDir\\cat.txt");
       myFile.createNewFile();
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if(myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");
      }
}
这是输出:
文件夹已创建... 文件名:cat.txt 父文件夹:d:\MyDir 文件存在
顺便说一下,如果一切都正确的话,您可以在计算机上找到一个新的目录和文件。现在让我们编写一个程序,可以在其中处理创建的目录和文件。这里我们使用上面描述的一些方法。
import java.io.File;

public class FileTest3 {

   public static void main(String[] args) {

       File dir = new File("d:\\MyDir");
       File myFile = new File("d:\\MyDir\\cat.txt");
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if (myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");

       System.out.println("Absolute path: " + myFile.getAbsolutePath());

       if (myFile.exists()) {
           System.out.println("Is writable: " + myFile.canWrite());
           System.out.println("Is readable: " + myFile.canRead());
           System.out.println("Is a directory: " + myFile.isDirectory());
           System.out.println("myFile Size in bytes = " + myFile.length());

       }
   }
}
程序的输出是:
文件名:cat.txt 父文件夹:d:\MyDir 文件存在 绝对路径:d:\MyDir\cat.txt 可写:true 可读:true 是目录:false myFile 字节大小 = 0
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION