java中的文件与随机访问文件

java中的文件与随机访问文件,java,io,nio,Java,Io,Nio,我需要在一个目录中搜索并获取其中的所有文件。所以我用一个文件数组来存储文件。我的问题是 1) 数组是否包含实际文件或对文件的引用? 2) 哪一个是最好的选择文件还是RandomAcessFile?为什么会这样 请帮我翻译一下我的代码 public File[] getAllFiles(String path) { File file = new File(path); if (file.isDirectory() && file.exists()) {

我需要在一个目录中搜索并获取其中的所有文件。所以我用一个文件数组来存储文件。我的问题是

1) 数组是否包含实际文件或对文件的引用? 2) 哪一个是最好的选择文件还是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++;
    }
}
1) 数组包含的Java变量永远不是对象。它们只指向保存在磁盘某处的对象。因此,文件数组只指向磁盘上的某个文件对象。但文件对象也不是文件。它们只包含文件的路径并指向该文件

所以不,它们只指向文件,比如数组中包含的Java变量,而不是对象。它们只指向保存在磁盘某处的对象。因此,文件数组只指向磁盘上的某个文件对象。但文件对象也不是文件。它们只包含文件的路径并指向该文件


所以不,它们只指向文件

文件
是文件/目录的抽象表示,它可能存在,也可能不存在。它不消耗任何资源,因此您可以存储任意数量的资源


RandomAccessFile
用于实际的文件访问(读取、查找、写入),因此这里不需要它。

file
是文件/目录的抽象表示,它可能存在,也可能不存在。它不消耗任何资源,因此您可以存储任意数量的资源

RandomAccessFile
用于实际的文件访问(读取、查找、写入),因此这里不需要它。

1)file.listFiles该方法返回由该抽象路径名表示的目录中的文件和目录的路径名数组

2) 看看这个答案

1)file.listFiles该方法返回由这个抽象路径名表示的目录中的文件和目录的路径名数组


2) 看看这个答案

你可能想读一下这两门课。然后您会看到,
RandomAccessFile
实际上是用来访问文件的内容的,而
file
只是访问文件的句柄/引用。另外,
RandomAccessFile
甚至没有类似于
exists
的方法,因此您当然需要使用
File
。您可能需要阅读这两个类。然后您会看到,
RandomAccessFile
实际上是用来访问文件的内容的,而
file
只是访问文件的句柄/引用。另外,
RandomAccessFile
甚至没有类似于
exists
的方法,因此您当然需要使用
File