重定向标准输入/输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package cn.test;
 
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.Scanner;
 
import org.junit.Test;
 
/*
 * 重定向标准输入/输出
 */
public class Demo6 {
 
    @Test
    //重定向标准输出,不从控制台输出,而是写到文件中
    public void redirectOut(){
        try {
            FileOutputStream fos = new FileOutputStream("D:/temp/test.txt");
            //创建PrintStream输出流
            PrintStream ps = new PrintStream(fos);
            //将标准输出重定向到ps输出流
            System.setOut(ps);
            //控制台不再输出hello,而是写到文件test.txt
            System.out.println("hello");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
     
    @Test<br>     //将使用文件作为标准输入,而不是键盘
    public void rediretIn(){
        try {
            FileInputStream fis = new FileInputStream("D:/temp/test.txt");
            //将标准输入流重定向到fis输入流
            System.setIn(fis);
            //创建Scanner对象,用于获取标准输入
            Scanner sc = new Scanner(System.in);
            //只把回车最为分隔符
            sc.useDelimiter("\n");
            while(sc.hasNext()){
                System.out.println("键盘输入的内容是:" + sc.next());
            }
            sc.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
         
    }
}

  

posted @   头痛不头痛  阅读(298)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
主题色彩