什么是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");
}
}
这是输出:
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());
}
}
}
程序的输出是:
GO TO FULL VERSION