2012-02-15 74 views
0

我已經託管了一個文本文件,我想使用java加載到一個字符串中。Java URL的文本文件字符串

我的代碼似乎不工作產生的錯誤,任何幫助?

try { 
    dictionaryUrl = new URL("http://pluginstudios.co.uk/resources/studios/games/hangman/dictionary.dic"); 
} catch (MalformedURLException catchMalformedURLException) { 
    System.err.println("Error 3: Malformed URL exception.\n" 
        + "   Dictionary failed to load."); 
} 
// 'Dictionary' scanner setting to file 
// 'src/Main/Dictionary.dic' 
DictionaryS = new Scanner(new File(dictionaryUrl)); 
System.out.println("Default dictionary loaded."); 

更新1:該文件似乎不會加載到catch。但該文件存在。

+0

你會得到什麼錯誤? – Marthin 2012-02-15 12:56:13

+1

不應該使用'FileInputStream'從文件中讀取嗎?另外,你不能僅僅使用'File'來存放本地文件系統中的文件? – Marcelo 2012-02-15 12:57:59

+0

我在閱讀本地文件時遇到了問題,它在NetBeans中工作正常,但在構建它之後,.jar文件似乎無法讀取存儲在.jar文件中的本地文件。因此,我試圖使用一個URL,我不知道如何使用FileInputStream? – 2012-02-15 12:59:17

回答

0

您需要使用HttpClient並以字符串或字符串緩衝區的形式檢索數據。 然後使用解析或讀取文件。

+0

我該怎麼做? – 2012-02-15 13:00:10

+0

使用提供的鏈接.. http://hc.apache.org/httpclient-3.x/tutorial.html – Vinay 2012-02-15 13:00:38

1

你可以做一些事情,this tutorial does

public class WebPageScanner { 
    public static void main(String[] args) { 
     try { 
     URLConnection connection = 
      new URL("http://java.net").openConnection(); 
     String text = new Scanner(
      connection.getInputStream()). 
      useDelimiter("\\Z").next(); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 
    } 
    } 
+0

什麼是useDelimiter(「\\ Z」)。next();做? – 2012-02-15 13:01:06

0

像這樣的東西應該工作你的情況:

DictionaryS = new Scanner(dictionaryUrl.openStream()); 
+0

試過這個,沒有工作。 – 2012-02-15 13:06:47

+0

請更具體一些,哪些行不通,你得到了什麼錯誤? – stryba 2012-02-15 14:05:02

0

的JavaDoc告訴我們:

文件(URI URI)

創建一個新的File實例通過將給定的文件:URI轉換爲抽象的路徑名。

我們無法爲任何其他資源類型(如http)創建和使用File實例。