无法从String创建Path对象

时间:2014-03-30 03:58:18

标签: java eclipse io path nio

我正在关注Oracle.com上的基本I / O教程,但是我在创建Path对象时遇到了困难:

Path p1 = Paths.get("/tmp/foo");

出现错误:

error: The method get(URI) in the type Paths is not applicable for the arguments (String).

我在Linux上,我在Eclipse Kepler工作。我正在尝试访问当前目录中的文本文件。使用扫描程序和文件我可以使用该文件,但我也想摆弄文件的路径,以便继续学习本教程。

编辑:整个程序如下。下半场是我作为菜鸟并确认文件存在/有效。当我注释掉路径定义时,我得到“test.txt”文件中“Test”的输出。:

package projectSARA;
import java.util.*;
import java.io.*;
import java.net.URI;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {

public static void main(String[] args) {

    String saveFile = "save.txt";
    Path p1 = Paths.get(saveFile);
    Path p2 = Paths.get("save.txt");

    File file = new File(saveFile);
    try{
    Scanner in = new Scanner(file);
    String test = in.next();
    System.out.println(test);
    }
    catch(FileNotFoundException e){
        System.out.println("File not found");
    }
}// end main

}

补充:我之前已经问过这个问题,并被要求进行编辑。我在编辑中添加,等了几天,但没有更多的回复。我应该以某种方式刷新它,或者联系评论的作者?我是Stack Exchange的新手,但非常感谢大家的努力。

5 个答案:

答案 0 :(得分:0)

Paths.get("/some/path")是一种有效的方法调用。如果代码是您发布的,那么这可能是Eclipse意图的错误。您的错误The method get(URI) in the type Paths...不是javac错误,它是Eclipse错误。

你的类非常简单,所以尝试用javac编译它或者使用Eclipse之外的其他IDE,看看是否有编译错误。

答案 1 :(得分:0)

在你的行中:

Path p1 = Paths.get("/tmp/foo");

当get方法需要URI时,您正在使用字符串。

首先将路径定义为URI。

URI uri = null;
try {
    uri = new URI("file:///myFile.txt");  
             }
Path file=Paths.get(uri);

答案 2 :(得分:0)

路径p1 = Paths.get(“/ tmp / foo”);

其中Paths.get只接受URI参数,因此我们需要提供类似的

Path dir = Paths.get(new URI("/tmp/foo"));

我想,它会解决你的问题。

答案 3 :(得分:0)

您的代码应该可以使用,但这是一个简单的解决方法:

Paths.get("save.txt", "");

这将强制系统使用基于字符串的get方法而不是URI。

答案 4 :(得分:0)

将JRE更改为Java 7将解决此问题。在Eclipse上,转到项目属性->构建路径->库->选择JRE系统库->单击编辑->将执行环境更改为jdk7。现在,您可以将String传递给Paths.get()。