用Java读取多个文件

时间:2011-09-21 11:41:42

标签: java filenames readfile

我想一次将多个文件读入Java。文件名如下:

  • nnnnn_UM2012.txt
  • ghkjdf_UM2045.txt
  • erey_UM2189.txt
  • ....

有超过1,000个文件,我不想一个接一个地用Java编写所有文件名,使用类似下面的代码:

String fileNames = {"nnnnn_UM2012.txt","ghkjdf_UM2045.txt","erey_UM2189.txt", …}

也许应该以相反的顺序读取文件名。我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:4)

您可以使用listFiles方法获取文件夹中的所有文件。

答案 1 :(得分:3)

获取文件夹中的所有文件(子文件夹包含在文件列表中):

    // get all files in the folder
    final File folder = new File(".");
    final List<File> fileList = Arrays.asList(folder.listFiles());

获取文件夹中的所有文件,不包括子文件夹:

    // get all files in the folder excluding sub-folders
    final File folder = new File(".");
    final List<File> fileList = Arrays.asList(folder.listFiles(new FileFilter() {
        public boolean accept(File pathname) {
            return pathname.isFile();
        }
    }));

要将文件列表排序为反向区分大小写的顺序:

    // sort the files into reverse order
    Collections.sort(fileList, new Comparator<File>() {
        public int compare(File o1, File o2) {
            return o2.getName().compareTo(o1.getName());
        }
    });

要将文件列表排序为反向不区分大小写的顺序:

    // sort the files into reverse order ignoring case
    Collections.sort(fileList, new Comparator<File>() {
        public int compare(File o1, File o2) {
            return o2.getName().compareToIgnoreCase(o1.getName());
        }
    });

答案 2 :(得分:0)

File rep = new File("path to rep");
File[] list = rep.listFiles();
ArrayList<String> filenames = new ArrayList<String>();
for ( int i = 0; i < list.length; i++) {
    filenames.add(list[i].getName());
} 

我想这可以解决你的问题。

答案 3 :(得分:0)

如果所有文件都在一个目录中,您可以按照以下方法操作。 通过提供其完全限定的路径获取对该目录的引用,然后使用list()函数将所有文件名放入目录中的String数组中。

在此步骤之后,您可以根据自己的方式对文件进行排序(例如,按名称,长度等)。