我需要搜索目录并获取其中的所有文件。所以我以前将文件存储在File数组中。我的问题是
1)数组是否包含实际文件或对文件的引用? 2)哪个是最好的选择File或RandomAcessFile?为什么会这样?
请帮我提供我的代码
public File[] getAllFiles(String path) {
File file = new File(path);
if (file.isDirectory() && file.exists()) {
allFiles = file.listFiles();
System.out.println("Files in the directory " + file.getName()
+ " present in the path " + file.getAbsolutePath()
+ " are fetched sucessfully");
printAllFiles(allFiles);
}
return allFiles;
}
public void printAllFiles(File data[]) {
int count = 0;
for (File i : data) {
System.out.println("Index : " + count + " Name : " + i.getName());
count++;
}
}
答案 0 :(得分:6)
File
是可能存在或可能不存在的文件/目录的抽象表示。它不消耗任何资源,因此您可以随意存储它们。
RandomAccessFile
用于实际的文件访问(读取,查找,写入),因此此处不需要。
答案 1 :(得分:2)
1)Java变量(例如一个),您的数组包含了它,但从来都不是对象。它们仅指向保存在磁盘上某处的对象。因此,您的文件阵列仅指向磁盘上的某些文件对象。但是File对象也不是File。它们仅包含文件的路径并指向该文件。
所以不,它们仅指向文件
答案 2 :(得分:1)
1)file.listFiles该方法返回此抽象路径名表示的目录中文件和目录的路径名数组。