`
caoruntao
  • 浏览: 467338 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

System.err与System.out的区别

    博客分类:
  • java
阅读更多

      大多数操作系统都有三个标准文件描述符:标准输入,标准输出,标准出错。

      三个操作系统的文件描述符映射到编程语言的标准库中,往往加了一层包装,但是名字通常还是叫标准输入,标准输出,标准出错。

       在其它语言中的一般写法是:stdin,stdout,stderr(有的语言里大写,有的语言里小写)。对应Java中的System.in,System.out,System.err。

       在语言层面的实现三个文件描述符都是可以重定向的(只要你想)。但是一般而言,如果你在unix shell或windows command line中使用管道或重定向,则只是针对标准输入和输出。

       另外,标准输出和标准出错的一个区别是,标准输出往往是带缓存的,而标准出错没有缓存(默认设置,可以改)。所以如果你用标准出错打印出来的东西可以马上显示在屏幕,而标准输出打印出来的东西可能要再积累几个字符才能一起打印出来。如果你在应用中混用标准输出和标准出错就可能看到这个问题。

       总的来说,System.out用于正常的输出,也就是程序真正想输出的内容。而System.err用于出错信息的输出,也就是你本来不期待看到的东西。

        因此,System.err打出来的信息常常会跑到System.out信息的前面去。。。

如:

public void sayHello(String name) {
System.err.println(new Date()+" sayHello method start");
System.out.println("excute sayHello()");
System.out.println(new Date()+" sayHello method end");
}

会出现两种情况:

excute sayHello()
Mon Apr 26 10:12:05 CST 2010 sayHello method end
Mon Apr 26 10:12:05 CST 2010 sayHello method start

Mon Apr 26 10:17:15 CST 2010 sayHello method start
excute sayHello()
Mon Apr 26 10:17:15 CST 2010 sayHello method end

分享到:
评论
3 楼 蓝月儿 2011-05-30  
那什么是重定向呢
2 楼 pingping716827 2011-01-24  
谢了~~~~~  写的很明白
1 楼 zhousheng193 2010-08-09  
学习一下!

相关推荐

    java基础(System.err和System.out)详解

    下面小编就为大家带来一篇java基础(System.err和System.out)详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    一个完整可用的证书签名(验签),加密(解密)java源码

    System.err.println("私钥签名——公钥验证签名"); // 产生签名 String sign = CertificateUtils.signToBase64(data.getBytes("utf-8"), keyStorePath, alias, password); System.out.println("私钥签名:" + ...

    jdbc连接db2

    System.out.println(rs.getString(1)); else System.out.println("totle:0"); rs.close(); stmt.close(); conn.close(); } catch (ClassNotFoundException cnfe) { System.err.println("Unable to...

    Java实现远程执行SHELL

    System.out.println("结果:" + resultEntity.getResult() + "|状态:" + resultEntity.getStatusCode()); } else { System.err.println("执行出错了-->" + resultEntity.getErrorMsg()); } } else ...

    SimpleWeb CS.zip

    System.err.println("IOException: " + ioe); } } /* 通过建立的连接请求一个页面,显示回应然后关闭socket */ public static void getPage(Socket clientSocket) { try { // 需要输入和输出流

    java的键盘输入

    System.out.print ——标准输出流 Java 的流类,主要是:输入流类 InputStream 输出流类 OutputStream Java 系统预先定义好 3 个流对象,静态属性 System.out 标准输出设备:显示器 ...

    反射机制用Java描述下载资料

    反射机制用Java描述下载资料 import java.lang.reflect.Array; public class ArrayTest { public static void main(String[] args){ try{ //创建一个元素类型为String,长度为... System.err.println(e); }

    DES加密算法DES加密算法

    System.err.println("Wrong hex ley lenght (" + line.length() + "/" + keyLen/4 + ")"); // make binary key if (ishex) bin = hextobin(line); else bin = asciitobin(line); ...

    java基础面试题

    System.err.println(str1 == str2); A.True B. false 2、下面程序的运行结果:() public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; t.run(); ...

    MongoDB_Demo

    import java.util.ArrayList; import java.util.List; ... MongoCredential credential = MongoCredential.createScramSha... System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } } }

    java 实现多线程服务器

    // 文件名:moreServer.java import java.io.*; import java.net.*; import java.util.*; /** * <p>Title: 多线程服务器 * <p>Description: 本实例使用多线程实现... System.out.println("close err"+e); } } } }

    Linux下定时切割Tomcat日志并删除指定天数前的日志记录

    System.out和System.err都被打印到catalina.out。catalina.out不会rotate。一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。 1、可通过修改conf/logging.properties日志...

    looly#hutool-site#控制台打印封装-Console1

    由来编码中我们常常需要调试输出一些信息,除了打印日志,最长用的要数System.out和System.err比如我们打印一个Hello World,可以这样写:

    Java生成密钥的实例.rar

     System.err.println("保存私钥到: privateKey.dat");  //从文件中得到公钥编码的字节数组  FileInputStream fin = new FileInputStream("publicKey.dat"); //打天publicKey.dat  ByteArrayOutputStream ...

    Java加密和数字签名编程快速入门

     System.err.println("Usage:java MessageDigestExample text");  System.exit(1);  }  byte[] plainText=args[0].getBytes("UTF8");  //使用getInstance("算法")来获得消息摘要,这里使用SHA-1的160位算法  ...

    java英语面试题大集合

    The class System has a variable out that represents the standard output, and the variable err that represents the standard error device. By default, they both point at the system console. This how the...

    mybatis-3.4.6.zip

    MyBatis 3.4.6 发布了。主要更新内容如下: 提升 将自定义ResultHandler应用于CURSOR类型OUT参数。 #493 在包含的SQL片段的属性值中替换变量。 #1069 ...BatchExecutor现在在执行后立即关闭每...' in System.err. #929

    Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录

    System.out和System.err都被打印到catalina.out。catalina.out不会rotate。一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。 1、可通过修改conf/logging.properties日志...

    hadoop_the_definitive_guide_3nd_edition.pdf

    System.err.println("Usage: MaxTemperature <input path> <output path>"); System.exit(-1); } Job job = new Job(); job.setJarByClass(MaxTemperature.class); job.setJobName("Max temperature"); ...

    java管道流

    java管道流 Listing 1:用管道流截取控制台输出】 ... System.err.println("连接失败"); System.exit(1); } PrintStream ps = new PrintStream(pipedOS); System.setOut(ps); System.setErr(ps);

Global site tag (gtag.js) - Google Analytics