如何在Java中将参数传递给“路径”类型参数?

时间:2019-10-23 09:26:26

标签: java

我已经尝试使用BufferedReader类找到以下Java代码,以读取文本流。

public void editTexts(Path inputFile) throws IOException{
    BufferedReader reader = Files.newBufferedReader(inputFile)){
        // ----------                         
    }
}

如该代码中一样,参数类型称为Path。我在传递参数时遇到了问题。

我想知道如何将参数传递给Path参数类型?

2 个答案:

答案 0 :(得分:1)

比方说,您有一个指向目录的Path,比方说Windows机器的根目录。

您可以这样创建Path

Path rootPath = Paths.get("C:\\");

如果您现在想像文件名一样传递参数,那么您可以这样做

String fileName = "some_file.txt";
Path filePath = rootPath.resolve(fileName);

为确保一切正常,请打印两个Path的绝对路径

System.out.println("root path is " + rootPath.toAbsolutePath().toString());
System.out.println("path to the file in root is " + fileInRootPath.toAbsolutePath().toString());

您可以对这些Path执行检查,因为将它们创建在内存中并不一定意味着路径正确并且文件系统对象存在。

// check if the path exists
if (Files.exists(filePath)) {
    // check if the path points to a regular file (not a directory or symbolic link)
    if (Files.isRegularFile(filePath)) {
        System.out.println(filePath.toAbsolutePath().toString() 
                + " exists and is a regular file");
    } else {
        System.out.println(filePath.toAbsolutePath().toString() 
                + " exists, but is not a regular file");
    }
} else {
    System.out.println(filePath.toAbsolutePath().toString()
            + " does not exist");
}

答案 1 :(得分:0)

尝试Paths.get(...)

Path path = Paths.get("root", "sub", "subsub", "InterestingFile.txt");