Ответ 1
Здесь используется утилита IOUtils.toString(..)
от Apache Commons.
Если вы используете Guava
, также Files.readLines(..)
и Files.toString(..)
.
Есть ли лучшие способы прочитать весь html файл для одной строковой переменной, чем:
String content = "";
try {
BufferedReader in = new BufferedReader(new FileReader("mypage.html"));
String str;
while ((str = in.readLine()) != null) {
content +=str;
}
in.close();
} catch (IOException e) {
}
Здесь используется утилита IOUtils.toString(..)
от Apache Commons.
Если вы используете Guava
, также Files.readLines(..)
и Files.toString(..)
.
Вы должны использовать StringBuilder:
StringBuilder contentBuilder = new StringBuilder();
try {
BufferedReader in = new BufferedReader(new FileReader("mypage.html"));
String str;
while ((str = in.readLine()) != null) {
contentBuilder.append(str);
}
in.close();
} catch (IOException e) {
}
String content = contentBuilder.toString();
Вы можете использовать JSoup.
Это очень сильный HTML parser
для java
Для строковых операций используйте классы StringBuilder или StringBuffer для накопления строковых блоков данных. Не используйте операции +=
для строковых объектов. String
класс неизменен, и во время выполнения вы создадите большое количество строковых объектов, и это повлияет на производительность.
Вместо этого используйте .append()
метод экземпляра класса StringBuilder/StringBuffer.
Я предпочитаю использовать Guava:
import com.google.common.base.Charsets;
import com.google.common.io.Files;
String content = Files.toString(new File("/path/to/file", Charsets.UTF_8)