Java面向對象系列[v1.0.0][重定向標準輸入輸出]

重定向標準輸入輸出

Java的輸入輸入分別通過System.in和System.out來完成,默認情況下他們分別代表鍵盤和顯示器,在System類裏還提供瞭如下3個重定向標準輸入/輸出的方法:

  • static void setErr(PrintStream err):重定向標準錯誤輸出流
  • static void setIn(InputStream in):重定向標準輸入流
  • static void setOut(PrintStream out):重定向標準輸入流
import java.io.*;

public class RedirectOut
{
	public static void main(String[] args)
	{
		try (
			// 一次性創建PrintStream輸出流
			var ps = new PrintStream(new FileOutputStream("out.txt")))
		{
			// 將標準輸出重定向到ps輸出流
			System.setOut(ps);
			// 向標準輸出輸出一個字符串
			System.out.println("普通字符串");
			// 向標準輸出輸出一個對象
			System.out.println(new RedirectOut());
		}
		catch (IOException ex)
		{
			ex.printStackTrace();
		}
	}
}
import java.util.*;
import java.io.*;

public class RedirectIn
{
	public static void main(String[] args)
	{
		try (
			var fis = new FileInputStream("RedirectIn.java"))
		{
			// 將標準輸入重定向到fis輸入流
			System.setIn(fis);
			// 使用System.in創建Scanner對象,用於獲取標準輸入
			var sc = new Scanner(System.in);
			// 增加下面一行將只把回車作爲分隔符
			sc.useDelimiter("\n");
			// 判斷是否還有下一個輸入項
			while (sc.hasNext())
			{
				// 輸出輸入項
				System.out.println("鍵盤輸入的內容是:" + sc.next());
			}
		}
		catch (IOException ex)
		{
			ex.printStackTrace();
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章