有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法从字符串创建路径对象

我将学习有关Oracle的基本I/O教程。com,但我在创建路径对象时遇到困难:

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

这就产生了错误:

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

我在Linux上工作,在EclipseKepler上工作。我正在尝试访问当前目录中的文本文件。使用扫描器和文件,我可以处理文件,但我还想摆弄文件的路径,以便继续教程

编辑:整个程序如下所示。下半部分是我作为一名新手,确认文件存在/有效。当我注释掉路径定义时,我得到了“save”中的“Test”的输出。txt'文件:

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) 个答案

  1. # 1 楼答案

    路径p1=路径。获取(“/tmp/foo”)

    哪里有路径。get只接受URI参数,所以我们需要提供

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

    我想,这会解决你的问题

  2. # 2 楼答案

    将JRE更改为Java7将解决这个问题。在Eclipse上转到项目属性->;构建路径->;图书馆->;选择JRE系统库->;单击编辑->;将执行环境更改为jdk 7。现在可以将字符串传递到路径中。get()

  3. # 3 楼答案

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

    您的类相当简单,所以请尝试使用javac或使用Eclipse以外的其他IDE编译它,看看是否出现编译错误

  4. # 4 楼答案

    您的代码应该可以工作,但这里有一个简单的解决方法:

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

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

  5. # 5 楼答案

    在你的队伍中:

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

    您正在使用字符串,而get方法需要URI

    首先将您的路径定义为URI

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