Java 中的 Java.io.File 类
文件类是 Java 对文件或目录路径名的表示。因为文件和目录名在不同的平台上有不同的格式,一个简单的字符串不足以命名它们。File 类包含几种方法,用于处理路径名、删除和重命名文件、创建新目录、列出目录内容以及确定文件和目录的几种常见属性。
- 它是文件和目录路径名的抽象表示。
- 路径名,无论是抽象的还是字符串形式,都可以是绝对的或相对的。抽象路径名的父路径可以通过调用这个类的 getParent()方法获得。
- 首先,我们应该通过传递文件名或目录名来创建文件类对象。文件系统可以对实际文件系统对象上的某些操作实施限制,例如读取、写入和执行。这些限制统称为访问权限。
- 文件类的实例是不可变的;也就是说,一旦创建,由 File 对象表示的抽象路径名将永远不会改变。
如何创建文件对象? 文件对象是通过传入代表文件名称的字符串、字符串或其他文件对象来创建的。例如,
File a = new File("/usr/local/bin/geeks");
为目录/usr/local/bin 中的 geeks 文件定义一个抽象文件名。这是一个绝对抽象的文件名。
施工人员
- 文件(文件父级,字符串子级):根据父抽象路径名和子路径名字符串创建新的文件实例。
- 文件(字符串路径名):通过将给定的路径名字符串转换为抽象路径名来创建新的文件实例。
- 文件(字符串父项,字符串子项):根据父路径名字符串和子路径名字符串创建新的文件实例。
- 文件(URI uri) : 通过将给定的文件:URI 转换为抽象路径名来创建新的文件实例。
方法
- 布尔 canExecute() : 测试应用程序是否可以执行这个抽象路径名所表示的文件。
- 布尔 canRead() :测试应用程序是否可以读取这个抽象路径名所表示的文件。
- 布尔 canWrite() : 测试应用程序是否可以修改这个抽象路径名所表示的文件。
- int compareTo(文件路径名):按字典顺序比较两个抽象路径名。
- boolean createNewFile() : 原子性地创建一个新的空文件,由这个抽象路径名命名。
- 静态文件创建临时文件(字符串前缀,字符串后缀):在默认的临时文件目录中创建一个空文件。
- 布尔删除():删除由该抽象路径名表示的文件或目录。
- 布尔相等(对象对象):测试该抽象路径名与给定对象的相等性。
- boolean exists() :测试该抽象路径名表示的文件或目录是否存在。
- String getAbsolutePath() : 返回该抽象路径名的绝对路径名字符串。
- long getFreeSpace() : 返回分区中未分配的字节数。
- String getName() : 返回由该抽象路径名表示的文件或目录的名称。
- String getParent() : 返回该抽象路径名的父路径名字符串。
- File getParentFile() : 返回该抽象路径名的父路径名的抽象路径名。
- String getPath() : 将此抽象路径名转换为路径名字符串。
- boolean isDirectory() : 测试该路径名表示的文件是否为目录。
- boolean isFile() : 测试该抽象路径名所表示的文件是否为普通文件。
- boolean isHidden() : 测试该抽象路径名命名的文件是否为隐藏文件。
- long length() : 返回由该抽象路径名表示的文件长度。
- String[] list() : 返回命名目录中文件和目录的字符串数组。
- File[] listFiles() : 返回表示目录中文件的抽象路径名数组。
- 布尔 mkdir() : 创建由该抽象路径名命名的目录。
- 布尔 renameTo(文件目的地):重命名由该抽象路径名表示的文件。
- 布尔 setExecutable(布尔可执行):设置所有者执行权限的便捷方法。
- boolean setReadable(布尔可读):设置所有者读取权限的便捷方法。
- 布尔设置可读(布尔可读,布尔所有者只读):设置所有者或每个人的读取权限。
- 布尔值 setReadOnly() : 标记名为的文件或目录,以便只允许读取操作。
- 布尔设置可写(布尔可写):设置所有者写权限的便捷方法。
- String toString() : 返回该抽象路径名的路径名字符串。
- URI 旅游():构造一个代表这个抽象路径名的文件 URI。
实施
程序 1: 检查文件或目录是否物理存在的程序。
Java 语言(一种计算机语言,尤用于创建网站)
// 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 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[] 中。然后将这些数组元素 arr[i]传递给 File 对象,并测试它们,以了解它们是否代表一个文件或目录。
Java 语言(一种计算机语言,尤用于创建网站)
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 和 file writer
本文由 尼尚·夏尔马 供稿。如果你喜欢 GeeksforGeeks 并想投稿,你也可以使用contribute.geeksforgeeks.org写一篇文章或者把你的文章邮寄到 contribute@geeksforgeeks.org。看到你的文章出现在极客博客主页上,帮助其他极客。
如果你发现任何不正确的地方,或者你想分享更多关于上面讨论的话题的信息,请写评论。
版权属于:月萌API www.moonapi.com,转载请注明出处