我正在关注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的新手,但非常感谢大家的努力。
答案 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()。