我跟着这个问题:
现在就我而言,我有 720 个文件以这种方式命名:“dom 24 mar 2013_00.50.35_128.txt”,每个文件都有不同的日期和时间。在测试阶段,我使用带有特定 txt 文件的 Scanner 对其进行一些操作:
Scanner s = new Scanner(new File("stuff.txt"));
我的问题是:
如何重复使用扫描仪并读取所有 720 个文件,而无需在扫描仪上设置精确名称?
谢谢
假设您将所有文件放在一个地方:
File dir = new File("path/to/files/");
for (File file : dir.listFiles()) {
Scanner s = new Scanner(file);
...
s.close();
}
请注意,如果您有任何不想包含的文件,您可以提供listFiles()
一个FileFilter
参数来过滤掉它们。
是的,通过将文件对象指向一个目录来创建它,然后列出该目录的文件。
File dir = new File("Dir/ToYour/Files");
if(dir.isDir()) {
for(File file : dir.listFiles()) {
if(file.isFile()) {
//do stuff on a file
}
}
} else {
//do stuff on a file
}
你可以这样试试
File folder = new File("D:\\DestFile");
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles) {
if (file.isFile()&&(file.getName().substring(file.getName().lastIndexOf('.')+1).equals("txt"))) {
// Scanner
}
}
File file = new File(folderNameFromWhereToRead);
if(file!=null && file.exists()){
File[] listOfFiles = file.listFiles();
if(listOfFiles!=null){
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
// DO work
}
}
}
}