Как загрузить файл по сети и обрабатывать его как строку - PullRequest
1 голос
/ 23 августа 2011

Я хотел бы отобразить содержимое URL в JTextArea.У меня есть URL, который указывает на файл XML, я просто хочу отобразить содержимое файла в JTextArea.как я могу это сделать?

Ответы [ 4 ]

2 голосов
/ 23 августа 2011

лучше JComponent для Html-содержимого будет JEditorPane / JTextPane , тогда большинство веб-сайтов должно отображаться там правильно, или вы можете создавать собственное Html-содержимое, но сегодня Java6 поддерживает Html <= Html 3.2, многопримеры на этом форуме или <a href="http://www.java2s.com/Tutorial/Java/0240__Swing/0680__JTextPane.htm" rel="nofollow"> здесь

1 голос
/ 23 августа 2011

Вы можете сделать это следующим образом:

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, называемом yourFileAsAString.

Вы можете вставить его в JTextArea, используя 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));
}
1 голос
/ 23 августа 2011
  1. Использование java.net.URL открытого ресурса в качестве потока (метод openStream()).
  2. Загрузка всего в виде строки
  3. место в текстовой области
1 голос
/ 23 августа 2011

Предполагая, что его HTTP URL

Откройте HTTPURLConnection и прочитайте содержимое

...