2014-03-30 32 views
0

我沿着基本I/O教程Oracle.com下面創建一個Path對象,但我有困難,使得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工作。我正試圖訪問當前目錄中的文本文件。使用掃描儀和文件我可以使用該文件,但我也想擺弄該文件的路徑,以便繼續教程。

編輯:整個程序如下。下半場我是一名新秀,並確認文件存在/作品。當我註釋掉路徑定義,我得到「測試」的輸出這是在「save.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很新,但非常感謝大家的努力。

+0

這是編譯時錯誤還是運行時錯誤?這適用於我使用Netbeans,Java 7和Mac OS – MadProgrammer

+0

也適用於Eclipse Eclipse Kepler 4.3.2,適用於Java 7和Mac OS –

回答

0

Paths.get("/some/path")是一個有效的方法調用。如果代碼是您發佈的代碼,那麼這可能是Eclipse意圖的錯誤。您的錯誤The method get(URI) in the type Paths...不是javac錯誤,它是一個Eclipse錯誤。

你的類很簡單,所以試着用javac編譯它,或者使用Eclipse以外的其他IDE,看看你是否得到編譯錯誤。

+0

這是一個編譯問題,因爲它在Eclipse之外運行.jar時被報告: java -jar mine.jar線程「main」中的異常java.lang.Error:未解決的編譯問題: Path類型中的方法get(URI)不適用於參數(String) – simpleuser

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); 
0

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

其中Paths.get只接受URI參數,所以我們需要提供像

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

我想,這將解決您的問題。

+0

實際上有兩種方法,另一個接受一個字符串。 – Bubletan

0

您的代碼應該工作,但這裏有一個簡單的解決方法:

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

這將迫使該系統使用基於字符串的GET方法,而不是URI。