Java中System.out.println和System.err.println有什么区别
时间: 2024-01-18 09:56:44 浏览: 139
在Java中,System.out.println和System.err.println都是用于向控制台输出信息的方法,但是它们有以下区别:
1. 输出流的不同:System.out.println使用的是标准输出流(System.out),而System.err.println使用的是标准错误输出流(System.err)。
2. 输出内容的不同:System.out.println一般用于输出普通的程序运行结果等信息,而System.err.println则一般用于输出错误信息或异常堆栈信息等。
3. 输出颜色的不同:在某些操作系统中,System.err.println输出的文本颜色可能与System.out.println不同,通常System.err.println输出的文本颜色会更醒目一些。
总的来说,System.out.println和System.err.println的作用类似,但是它们输出的信息有所不同,因此在实际开发中需要根据需要选择适当的输出方法。
相关问题
java system.out.println在类中无法使用
为什么在Java类中使用System.out.println无法工作?
在Java中,System.out.println是一种在控制台上输出文本的方法。正常情况下,可以在任何Java类中使用它来输出文本。
如果在类中使用System.out.println无法工作,则可能是以下原因之一:
1. 语法错误
System.out.println的语法必须正确,否则将出现编译时错误。请确保语法正确并检查您的类中是否有其他语法错误。
2. 类没有正确导入
如果没有导入java.lang.System包,那么System.out.println也无法正常工作。请确保导入了所需的包。
3. 控制台不可用
如果您的程序不是在控制台中运行(例如,它可能是一个Web应用程序或Android应用程序),那么System.out.println可能不适用于您的应用程序。在这种情况下,您可以使用类似LogCat的其他日志记录工具来输出文本。
4. 输出不可见
如果您的程序在控制台中运行,但仍无法看到输出,可能是因为输出被重定向到其他地方。您可以尝试使用System.err.println而不是System.out.println来查看错误消息。此外,请确保您的输出不会被重定向到文件或其他输出源。
把java的System.out.println()写的复杂一点
下面是一个比较复杂的写法,将输出分别写入不同的缓冲区,然后再将缓冲区的内容输出到控制台:
```java
PrintStream console = System.console();
BufferedOutputStream bos = new BufferedOutputStream(console.writer());
PrintStream ps1 = new PrintStream(bos);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps2 = new PrintStream(baos);
System.setOut(ps1);
System.setErr(ps2);
// 输出内容
System.out.println("Hello, world!");
// 将缓冲区内容输出到控制台
ps1.flush();
bos.flush();
console.flush();
// 将错误信息输出到控制台
ps2.flush();
System.err.write(baos.toByteArray());
System.err.flush();
```
阅读全文