天天看點

System.out.println()與System.out.print("\n")的差別

這是在寫junit測試的時候發現的。

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

public class Test {
	public static void main(String[] args) {
		PrintStream out=System.out;
		ByteArrayOutputStream outContent = new ByteArrayOutputStream();
		System.setOut(new PrintStream(outContent));
		System.out.println("hello");
		System.setOut(out);
		System.out.println(outContent.toString().equals("hello\n"));
		outContent.reset();
		System.setOut(new PrintStream(outContent));
		System.out.print("hello\n");
		System.setOut(out);
		System.out.println(outContent.toString().equals("hello\n"));
    } 
}
           

上面這段程式輸出的結果是false true。這意味着System.out.println()與System.out.print("\n")輸出的字元還是有差别的。如果要将輸出重定向到str用于測試是否相等的話,需要注意這一點。