Pro Android 2:Android中的system.out.println是什么?

时间:2011-03-03 00:08:39

标签: android

就我(当前)的理解而言,Android没有可以发送消息的控制台,因此System.out.println消息会丢失。相反,应该使用Log.x(输出到LogCat)。

然而,在备受赞誉的Pro Android 2书中,listing 8-1就是这样做的:

    in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

    StringBuffer sb = new StringBuffer("");
    String line = "";
    String NL = System.getProperty("line.separator");
    while ((line = in.readLine()) != null) {
        sb.append(line + NL);
    }
    in.close();

    String page = sb.toString();
    System.out.println(page);

System.out.println 在Android中是否真的有用,还是只是一个错字?

如果是前者(即一个错字),它真正做了什么以及我应该在哪里找到输出?

4 个答案:

答案 0 :(得分:3)

System.out.println打印到当前定义为“标准”输出PrintStream的任何内容。可以将其挂钩以指向日志流,但实际上没有充分的理由使用它。使用Log.x。

这可能只是书中的一个错字。该代码段中没有任何内容是特定于Android的。

答案 1 :(得分:2)

System.out.println代码确实有效(尽管android文档说的是什么)。我已经在我的Android开发设置上试了一下(没有像文档中描述的那样更改设置)。我已经尝试过我的Android编程学生的设置,包括Windows和Mac。它总是以同样的方式出现:

以下行默认输出到logcat。

  

System.out.println(“blah blah”);

当然,无论如何,最好坚持使用Log.x()。依靠未记录的功能可能永远不是一个好主意,尤其是在书中。这个功能今天可以在这里,并且在下次工具更新时也一样。

答案 2 :(得分:1)

来自android docs

  

默认情况下,Android系统将stdout和stderr(System.out和System.err)输出发送到/ dev / null。

它还解释了如何正确使用System.out和System.err。

答案 3 :(得分:0)

如果您正在使用Eclipse,则System.out将显示在LogCat选项卡上,而不是在控制台中。 您也可以尝试Log.i(“MyLog”,“此处的消息......”);也显示在LogCat上。

享受!