1. 程式人生 > >Java輸出重定向

Java輸出重定向

main 輸出重定向 str per 題目 exit tar ide 一位

今天android的一個群裏在討論一個java的面試題,如下:

class test
{
	public static void main(String []args){
		int a=10,b=10;
		Method(a,b);
		System.out.println("a="+a);
		System.out.println("b="+b);
	}
}

實現Method方法,要求輸出,a=100,b=200。

剛看到這個題目我一蒙,這個什麽寫啊,java又沒有指針什麽的。

一會兒有一位神人發出了答案:

public static void Method(int a,int b)
{
	System.out.println("a=100");
	System.out.println("b=200");
	System.exit(0);
}

佩服、佩服,這樣卻是實現了題目的要求。但是這應該不是這條題目的本意,真正要考的是輸出重定向的問題。正確答案如下:

public static void Method(int a,int b){
	PrintStream ps = new PrintStream(System.out){
		@Override
		public void println(String x) {
			if(x.startsWith("a")) super.println("a=100");
			if(x.startsWith("b")) super.println("b=200");
		}
	};
	System.setOut(ps);
}

所以這條題目的要點在於java的輸出重定向的問題,不僅輸出可以重定向,輸入也可以重定向。

Java輸出重定向