如Jean所说,使用
StringBuilder
而不是
+=
更好。但如果您正在寻找更简单的东西,Guava、IOUtils和Jsoup都是不错的选择。
使用Guava的示例:
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日)起,此方法已被弃用。现在应该像上面的示例一样将InputStream
和Charset
传递给IOUtils.toString
。应使用Java 7的StandardCharsets
而不是Charsets
,如上面的示例所示。(已弃用的Charsets.UTF_8)