如何通过网络加载文件并将其作为字符串处理

发布于 2024-11-30 23:12:11 字数 83 浏览 0 评论 0原文

我想在 JTextArea 中显示 url 的内容。我有一个指向 XML 文件的 url,我只想在 JTextArea 中显示该文件的内容。我该怎么做?

I would like to display the contents of the url in a JTextArea. I have a url that points to an XML file, I just want to display the contents of the file in JTextArea. how can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

情绪少女 2024-12-07 23:12:12
  1. 使用java.net.URL以流的形式打开资源(方法openStream())。
  2. 将整个字符串
  3. 位置加载到文本区域
  1. Using java.net.URL open resource as stream (method openStream()).
  2. Load entire as String
  3. place to your text area
只是在用心讲痛 2024-12-07 23:12:11

对于 Html 内容来说,更好的 JComponent 是 JEditorPane/JTextPane,然后是大多数的网站应该在那里正确显示,或者您可以创建自己的 Html 内容,但是今天 Java6 支持 Html <= Html 3.2,这个论坛上有很多示例或 此处

better JComponent for Html contents would be JEditorPane/JTextPane, then majority of WebSites should be displayed correctly there, or you can create own Html contents, but today Java6 supporting Html <=Html 3.2, lots of examples on this forum or here

平定天下 2024-12-07 23:12:11

您可以这样做:

final URL myUrl= new URL("http://www.example.com/file.xml");
final InputStream in= myUrl.openStream();

final StringBuilder out = new StringBuilder();
final byte[] buffer = new byte[BUFFER_SIZE_WHY_NOT_1024];

try {
   for (int ctr; (ctr = in.read(buffer)) != -1;) {
       out.append(new String(buffer, 0, ctr));
   }
} catch (IOException e) {
   // you may want to handle the Exception. Here this is just an example:
   throw new RuntimeException("Cannot convert stream to string", e);
}

final String yourFileAsAString = out.toString();

然后文件的内容存储在名为 yourFileAsAStringString 中。

您可以使用 JTextArea.insert(yourFileAsAString, pos) 或使用附加它JTextArea.append(yourFileAsAString)
在最后一种情况下,您可以直接将读取的文本附加到 JTextArea,而不是使用 StringBuilder。为此,只需从上面的代码中删除 StringBuilder 并按以下方式修改 for() 循环:

for (int ctr; (ctr = in.read(buffer)) != -1;) {
    youJTextArea.append(new String(buffer, 0, ctr));
}

You can do that way:

final URL myUrl= new URL("http://www.example.com/file.xml");
final InputStream in= myUrl.openStream();

final StringBuilder out = new StringBuilder();
final byte[] buffer = new byte[BUFFER_SIZE_WHY_NOT_1024];

try {
   for (int ctr; (ctr = in.read(buffer)) != -1;) {
       out.append(new String(buffer, 0, ctr));
   }
} catch (IOException e) {
   // you may want to handle the Exception. Here this is just an example:
   throw new RuntimeException("Cannot convert stream to string", e);
}

final String yourFileAsAString = out.toString();

Then the content of your file is stored in the String called yourFileAsAString.

You can insert it in your JTextArea using JTextArea.insert(yourFileAsAString, pos) or append it using JTextArea.append(yourFileAsAString).
In this last case, you can directly append the readed text to the JTextArea instead of using a StringBuilder. To do so, just remove the StringBuilder from the code above and modify the for() loop the following way:

for (int ctr; (ctr = in.read(buffer)) != -1;) {
    youJTextArea.append(new String(buffer, 0, ctr));
}
要走就滚别墨迹 2024-12-07 23:12:11

假设其 HTTP URL

打开 HTTPURLConnection 并读出内容

Assuming its HTTP URL

Open the HTTPURLConnection and read out the content

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文