【问题标题】:Java URL text file to StringJava URL文本文件到字符串
【发布时间】:2012-02-15 12:54:36
【问题描述】:

我托管了一个文本文件,我想使用 java 将其加载到字符串中。

我的代码似乎没有产生错误,有什么帮助吗?

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。但文件存在。

【问题讨论】:

  • 您不应该使用FileInputStream 来读取文件吗?另外,您不能将File 仅用于本地文件系统中的文件吗?
  • 我在读取本地文件时遇到问题,它在 NetBeans 中运行良好,但是在构建它之后,.jar 文件似乎无法读取存储在 .jar 文件中的本地文件。因此,我尝试使用 URL,但不确定如何使用 FileInputStream?
  • @KristianMatthews:你不能使用FileFileInputStream 从你的jar 中加载资源。请改用getClass().getResourceAsStream()
  • @stryba 这是如何工作的?我的文件存储在 src/Main/dictionary.txt
  • 我不知道您为什么要将 2.4 mb 的文本文件内容加载到字符串中。可能需要很长时间。您应该通过缓冲获取数据。

标签: java string file url text


【解决方案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();
       }
     }
   }

【讨论】:

  • 有什么用Delimiter("\\Z").next();做什么?
【解决方案2】:

您需要使用HttpClient 并将数据作为字符串或字符串缓冲区检索。 然后使用解析或读取为文件。

【讨论】:

    【解决方案3】:

    这样的事情应该适用于你的情况:

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

    【讨论】:

    • 请更具体一点,什么不起作用,您遇到了什么错误?
    【解决方案4】:

    JavaDoc 告诉我们:

    文件(URI uri)

    通过将给定的文件:URI 转换为抽象路径名来创建一个新的 File 实例。

    我们不能为任何其他资源类型(如http)创建和使用File 实例。

    【讨论】:

      猜你喜欢
      • 2014-11-28
      • 2020-02-27
      • 2011-04-20
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      相关资源
      最近更新 更多