Java:自动检测输入文件路径
我需要创建一个从文件中获取输入的程序。我需要使用什么来自动查找当前路径,然后搜索输入文件Java:自动检测输入文件路径,java,file,input,path,Java,File,Input,Path,我需要创建一个从文件中获取输入的程序。我需要使用什么来自动查找当前路径,然后搜索输入文件 示例:我将主文件放在C:/*路径名*/中,输入文件名为input.txt。如何使我的程序自动找到C:/*pathname*/INPUT.txt路径以获取其输入?在这种情况下,可以使用递归来查找文件。通过检查当前文件是否与给定文件名匹配,可以在当前/给定目录中启动搜索过程。如果您找到一个目录,您将在此目录中继续递归搜索过程 private static final File findFile(final St
示例:我将主文件放在
C:/*路径名*/
中,输入文件名为input.txt
。如何使我的程序自动找到C:/*pathname*/INPUT.txt
路径以获取其输入?在这种情况下,可以使用递归来查找文件。通过检查当前文件是否与给定文件名匹配,可以在当前/给定目录中启动搜索过程。如果您找到一个目录,您将在此目录中继续递归搜索过程
private static final File findFile(final String rootFilePath, final String fileToBeFound) {
File rootFile = new File(rootFilePath);
File[] subFiles = rootFile.listFiles();
for (File file : subFiles != null ? subFiles : new File[] {}) {
if (file.getAbsolutePath().endsWith(fileToBeFound)) {
return file;
} else if (file.isDirectory()) {
File f = findFile(file.getAbsolutePath(), fileToBeFound);
if (f != null) {
return f;
}
}
}
return null; // null returned in case your file is not found
}
public static void main(final String[] args){
File fileToBeFound = findFile("C:\\", "INPUT.txt"); // search for the file in all the C drive
System.out.println(fileToBeFound != null ? fileToBeFound.getAbsolutePath() : "Not found");
//you can also use your current workspace directory, if you're sure the file is there
fileToBeFound = findFile(new File(".").getAbsolutePath() , "INPUT.txt");
System.out.println(fileToBeFound != null ? fileToBeFound.getAbsolutePath() : "Not found");
}
NIO.2可以让这变得非常简单:您必须在“C:”驱动器中递归搜索INPUT.txt,也称为遍历文件树。更多信息:您的输入文件是否始终与您的程序位于同一文件夹中?然后可以使用相对路径
新文件(./INPUT.txt)