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

时间:2011-08-23 09:28:11

标签: java swing url jtextpane jeditorpane

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

4 个答案:

答案 0 :(得分:2)

更好的Html内容的JComponent将是JEditorPane/JTextPane,那么大多数网站应该在那里正确显示,或者你可以创建自己的Html内容,但今天Java6支持Html< = Html 3.2,很多例子都在这上面论坛或here

答案 1 :(得分:1)

假设其HTTP网址

打开HTTPURLConnection和read out the content

答案 2 :(得分:1)

  1. 使用java.net.URL开放资源作为流(方法openStream())。
  2. 将整个加载为字符串
  3. 放置在您的文字区域

答案 3 :(得分:1)

你可以这样做:

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

然后,您的文件内容存储在名为String的{​​{1}}中。

您可以使用JTextArea.insert(yourFileAsAString, pos)将其插入yourFileAsAString或使用JTextArea添加。{p> 在最后一种情况下,您可以直接将已阅读的文字附加到JTextArea.append(yourFileAsAString),而不是使用JTextArea。为此,只需从上面的代码中删除StringBuilder,然后按以下方式修改StringBuilder循环:

for()