Java-读取文件夹中的许多txt文件并对其进行处理
我接着说: 现在在我的例子中,有720个文件以这种方式命名:“dom 24 mar 2013_00.50.35_128.txt”,每个文件都有不同的日期和时间。在测试阶段,我使用带有特定txt文件的扫描仪对其执行一些操作: Scanner s=新的扫描仪(新文件(“stuff.txt”) 我的问题是: 如何重复使用扫描仪并读取所有720个文件,而不必在扫描仪上设置精确的名称Java-读取文件夹中的许多txt文件并对其进行处理,java,Java,我接着说: 现在在我的例子中,有720个文件以这种方式命名:“dom 24 mar 2013_00.50.35_128.txt”,每个文件都有不同的日期和时间。在测试阶段,我使用带有特定txt文件的扫描仪对其执行一些操作: Scanner s=新的扫描仪(新文件(“stuff.txt”) 我的问题是: 如何重复使用扫描仪并读取所有720个文件,而不必在扫描仪上设置精确的名称 谢谢假设您将所有文件放在一个位置: File dir = new File("path/to/files/"); for
谢谢假设您将所有文件放在一个位置:
File dir = new File("path/to/files/");
for (File file : dir.listFiles()) {
Scanner s = new Scanner(file);
...
s.close();
}
请注意,如果您有任何不想包含的文件,您可以给
listFiles()
一个参数来过滤掉它们。是的,通过将文件对象指向目录来创建文件对象,然后列出该目录下的文件
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 File=新文件(文件夹名从何处读取);
如果(file!=null&&file.exists()){
File[]listOfFiles=File.listFiles();
if(listOfFiles!=null){
for(int i=0;i
您可以用这种方式尝试
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
}
}
看到这里了吗?你能读取目录中的所有文件吗?或者你有更多的文件,你不想在目录中用不同的命名方案读取吗?你不能。每个文件都将创建一个新的扫描仪。是的,所有文件都在同一个文件夹中。该死,你刚刚打败了我:)+1击败了我的答案我们如何才能在文件位于不同目录的情况下读取多个文件?我不是专家,但我认为你的
if(listOfFiles!=null)
是不必要的。您刚刚创建了listOfFiles
,它怎么可能是空的呢。。如果(file!=null),则与您的相同。。。您正在测试是否存在您在测试之前刚刚创建的对象引用!对lisOfFiles
进行空检查是可以的(如果路径存在但为文件,则可能发生这种情况),但不需要对文件进行空检查+1对于isFile()
无论如何都要检查。@RaviThapliyal很好的调用,我没有考虑使用listOfFiles
来检查file
是否是目录,然后处理listOfFiles()
。
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
}
}