这是在写junit测试的时候发现的。
1 import java.io.ByteArrayOutputStream; 2 import java.io.PrintStream; 3 4 public class Test { 5 public static void main(String[] args) { 6 PrintStream out=System.out; 7 ByteArrayOutputStream outContent = new ByteArrayOutputStream(); 8 System.setOut(new PrintStream(outContent)); 9 System.out.println("hello"); 10 System.setOut(out); 11 System.out.println(outContent.toString().equals("hello\n")); 12 outContent.reset(); 13 System.setOut(new PrintStream(outContent)); 14 System.out.print("hello\n"); 15 System.setOut(out); 16 System.out.println(outContent.toString().equals("hello\n")); 17 } 18 }
上面这段程序输出的结果是false true。这意味着System.out.println()与System.out.print("\n")输出的字符还是有差别的。如果要将输出重定向到str用于测试是否相等的话,需要注意这一点。
时间: 2024-10-12 20:15:05