2012-02-15 76 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实例。