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();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/dawei_yang000000/article/details/106217479