您的位置:首页 > 其它

第15章-输入/输出 --- 重定向标准输入/输出

2014-04-11 07:26 246 查看
第15章-输入/输出 --- 重定向标准输入/输出
  Java的标准输入/输出分别通过System.in和System.out来代表,在默认情况下它们分别代表键盘和显示器,当程序通过System.in来获取输入时,实际上是从键盘读取输入;当程序试图通过System.out执行输出时,程序总是输出到屏幕。
  在System类里提供了如下3个重定向标准输入/输出的方法:
    (1)static void setErr(PrintStream err):重定向"标准"错误输出流。
    (2)static void setIn(InputStream in):重定向"标准"输入流。
    (3)static void setOut(PrintStream out):重定向"标准"输出流。
  
  下面程序通过重定向标准输出流,将System.out的 输出重定向到文件输出,而不是在屏幕上输出。

import java.io.FileOutputStream;
import java.io.PrintStream;

public class RedirectOut
{
public static void main(String[] args)
{
try
{
//一次性创建PrintStream输出流
PrintStream ps = new PrintStream(new FileOutputStream("out.txt"));

//将标准输出重定向到ps输出流
System.setOut(ps);

//向标准输出 输出一个字符串
System.out.println("普通字符串");

//向标准输出输出一个对象
System.out.println(new RedirectOut());
}
catch(Exception e)
{
e.printStackTrace();
}
}
}


 
 
 
 
 下面程序重定向标准输入,从而可以将System.in重定向到指定文件:
  

import java.io.FileInputStream;
import java.util.Scanner;

public class RedirectIn
{
public static void main(String[] args)
{
try
{
FileInputStream fis = new FileInputStream("props.txt");

//将标准输入重定向到fis输入流
System.setIn(fis);

//使用System.in创建Scanner对象,用户获取标准输入
Scanner sc = new Scanner(System.in);

//增加下面一行只把回车作为分隔符
sc.useDelimiter("\n");

//判断是否还有下一个输入项
while(sc.hasNext())
{
//输出输入项
System.out.println(sc.next());
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: