我刚刚StringBuilder第一次遇到并且感到惊讶,因为Java已经有一个非常强大的String类允许追加.
为什么选择String二等?
我在哪里可以了解更多信息StringBuilder?
我试图通过URL上的InputStreamReader(到某些Apache服务器上的文件)使用BufferedReader从Web文档中读取文本.
String result = "";
URL url = new URL("http://someserver.domain/somefile");
BufferedReader in = null;
in = new BufferedReader(new InputStreamReader(url.openStream(), "iso-8859-1"));
result += in.readLine();
Run Code Online (Sandbox Code Playgroud)
现在这个工作得很好.但显然我希望读者不要只阅读一行,而是阅读文件中的一行.
查看BufferedReader API,以下代码应该这样做:
while (in.ready()) {
result += in.readLine();
}
Run Code Online (Sandbox Code Playgroud)
即,当有更多行时读取所有行,当没有更多行时停止.但是这段代码不起作用 - 读者从不报告ready()= true!
我甚至可以在读取一行(从文件中读取正确的字符串)之前打印ready()值,但读者将报告" false ".
难道我做错了什么?为什么BufferedReader 会在准备就绪时返回' false '?