我想一次将多个文件读入Java。文件名如下:
有超过1,000个文件,我不想一个接一个地用Java编写所有文件名,使用类似下面的代码:
String fileNames = {"nnnnn_UM2012.txt","ghkjdf_UM2045.txt","erey_UM2189.txt", …}
也许应该以相反的顺序读取文件名。我怎样才能做到这一点?
答案 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
数组中。
在此步骤之后,您可以根据自己的方式对文件进行排序(例如,按名称,长度等)。