java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err详解编程语言
本文关键词:
java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err
操作系统一般都有三个标准文件描述符:标准输入,标准输出,标准出错
这是操作系统的一种抽象表达
不同的语言需要有不同的具体表达方式,当然也不过是另一种包装抽象
比如c++的 cin cout cerr
Java中则是的System.in,System.out,System.err
示例
输出结果:
-
-
可以看得出来:
运行多次 err的打印信息位置是不固定的
JDK文档/** * The "standard" output stream. This stream is already * open and ready to accept output data. Typically this stream * corresponds to display output or another output destination * specified by the host environment or user. * p * For simple stand-alone Java applications, a typical way to write * a line of output data is: * blockquote* System.out.println(data) */blockquote
* p
* See the code println /code methods in class code PrintStream /code .
*
* @see java.io.PrintStream#println()
* @see java.io.PrintStream#println(boolean)
* @see java.io.PrintStream#println(char)
* @see java.io.PrintStream#println(char[])
* @see java.io.PrintStream#println(double)
* @see java.io.PrintStream#println(float)
* @see java.io.PrintStream#println(int)
* @see java.io.PrintStream#println(long)
* @see java.io.PrintStream#println(java.lang.Object)
* @see java.io.PrintStream#println(java.lang.String)
*/
public static final PrintStream out = null;/**
* The "standard" error output stream. This stream is already
* open and ready to accept output data.
* p
* Typically this stream corresponds to display output or another
* output destination specified by the host environment or user. By
* convention, this output stream is used to display error messages
* or other information that should come to the immediate attention
* of a user even if the principal output stream, the value of the
* variable code out /code , has been redirected to a file or other
* destination that is typically not continuously monitored.
*/
public static final PrintStream err = null;是System 的两个内置变量 都是 PrintStream 类型的
out:
“标准”输出流。此流已打开并准备接受输出数据。
通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
err:
“标准”错误输出流。此流已打开并准备接受输出数据。
通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
按照惯例,此输出流用于显示错误消息
或者显示那些即使用户输出流(变量 out 的值)已经重定向到通常不被连续监视的某一文件或其他目标,也应该立刻引起用户注意的其他信息。
也就是说,out用于输出,err用于一切你认为逻辑上是错误的东西,需要引起注意的东西
System.out在JVM和操作系统都具有缓存功能,
就是你输出的东西不一定实时输出,有时候会积攒到一定数量才会输出
System.err会实时输出(默认设置,可以改)
这也是为什么err打印位置不固定的原因
如果使用了log4j的日志记录,且设定错误等级的话 System.err会被记入日志,System.out不会
而且一般在IDE中使用err ,都会变色的比如eclipse中红色
System.setErr()System.setOut() 可以重定向这两个流
System.setOut(new PrintStream(new FileOutputStream(new File( "d://out.txt ")))); System.setErr(new PrintStream(new FileOutputStream(new File( "d://err.txt "))));重定向后没有输出了
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15642.html
cgojavaphpxml
相关文章
- JAVA三元运算符_java中三元运算符详解
- java用什么编译器_Java用Java编译「建议收藏」
- java怎么调用.asmx_Java调用Webservice(asmx)的例子
- java编程软件下载_Ee Java(Java编程软件) V1.1.0 官方版
- java 堆栈的声明_Java 堆栈[通俗易懂]
- java webservice 实例_Java WebService 简单实例(附实例代码)
- java uuid 随机数_Java随机数和UUID[通俗易懂]
- 【说站】java数据结构
- 简单介绍一下spring bean的生命周期_java类的生命周期
- java的栈内存和堆内存_Java本地方法栈
- Java解析JSON文件「建议收藏」
- Java生成随机数组_java生成唯一数字
- 【错误记录】Java AWT 图形界面编程报错 ( Exception in thread “main“ java.awt.AWTError: BoxLayout can‘t be shared )
- java获取网页源码详解编程语言
- Java实现Redis事务管理(redis事务java)
- Java与Linux搭配,开发无限可能(java与linux)
- 时间利用Redis设置Java数据的过期时间(redisjava过期)
- 处理Redis与Java实现高效过期处理(redisjava过期)
- 时间解决Java操作Redis的过期时间问题(redisjava过期)
- Java操作Redis实现超时处理(redisjava过期)
- Oracle发布新版本Java开发工具JDK 17(jdk17 oracle)