Java: 为什么我不能将一个String convert 从StringBuffer 完整地输出到控制台?

Java: Why can't I output a String converted from StringBuffer to the console in it's entirety?

当我调试下面的代码时,在 "Variables" 视图中,responsethis.response 都显示了来自 http://www.google.com 的全部 1,779 行流式输入。但是,如果我想使用 System.out.println(this.response.toString();this.response 输出到控制台,它只会输出最后几行。

一开始我以为是Stringclass的限制。为了对此进行测试,我复制了 1,779 行并将它们分配给测试字符串变量。当我输出那个测试字符串变量时,它将所有 1,779 行输出到控制台就好了。

this.respponseresponse 都显示了整个文档,我错过了什么,但是当我输出其中任何一个时,我只得到最后几行?

public class ClassC {
    private String url = "http://www.google.com";
    private URL URL;
    private HttpURLConnection con;
    private String response;
    public static void main(String[] args) {
        new ClassC();
    }

    public ClassC() {
        try {
            URL = new URL(url);
            con = (HttpURLConnection) URL.openConnection();

            InputStream is = con.getInputStream();
            BufferedReader rd = new BufferedReader(new InputStreamReader(is));
            String line = null;
            StringBuffer response = new StringBuffer();
            while((line = rd.readLine()) != null) {
                response.append(line);
                response.append('\r');
                System.out.println(response.toString());
            }
            rd.close();
            this.response = response.toString();
            System.out.println(this.response);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

据我所知,Java 对打印内容没有任何限制。问题可能出在您的控制台上。您是否使用 Eclipse 或其他 IDE 来开发和 运行 应用程序?如果是这样 - 那么默认情况下是的,默认情况下旧行将在 Eclipse 运行 控制台上进行 t运行 分类。这条线也是多余的,

this.response = response.toString();

尝试 \n 而不是 \r

'\r' 是回车符 return - 它 return 是行首的插入符号,但不会开始新行,有效地覆盖当前行(或它的一部分)。

例如System.out.println("abcde\rfghi") 结果为 fghie