正如 Jean 所说,使用 aStringBuilder
而不是+=
会更好。但如果你正在寻找更简单的东西,Guava、IOUtils 和 Jsoup 都是不错的选择。
番石榴的例子:
String content = Files.asCharSource(new File("/path/to/mypage.html"), StandardCharsets.UTF_8).read();
IOUtils 示例:
InputStream in = new URL("/path/to/mypage.html").openStream();
String content;
try {
content = IOUtils.toString(in, StandardCharsets.UTF_8);
} finally {
IOUtils.closeQuietly(in);
}
Jsoup 示例:
String content = Jsoup.parse(new File("/path/to/mypage.html"), "UTF-8").toString();
或者
String content = Jsoup.parse(new File("/path/to/mypage.html"), "UTF-8").outerHtml();
笔记:
Files.readLines()
和Files.toString()
从 Guava 版本 22.0(2017 年 5 月 22 日)开始,这些现在已弃用。
如上例所示,Files.asCharSource()
应改为使用。(版本 22.0 版本差异)
IOUtils.toString(InputStream)
和Charsets.UTF_8
自 Apache Commons-IO 版本 2.5(2016 年 5 月 6 日)起已弃用。IOUtils.toString
现在应该传递 theInputStream
和the Charset
,如上例所示。StandardCharsets
应该使用Java 7而不是Charsets
如上例所示。(已弃用的 Charsets.UTF_8)