首页 > 其他分享 >12.16

12.16

时间:2023-12-19 23:55:06浏览次数:26  
标签:输出 重定向 标准 System 12.16 new 输入

在 Java 中,可以使用 System.setIn() 和 System.setOut() 方法来重定向标准输入和标准输出。这两个方法可以将标准输入流和标准输出流分别重定向到其他输入流和输出流,从而实现输入输出的重定向。

以下是一个简单的示例,演示了如何使用 System.setIn() 和 System.setOut() 方法来重定向标准输入和标准输出:

import java.io.*;

public class RedirectExample {
    public static void main(String[] args) {
        try {
            // 保存原始的标准输入流和标准输出流
            InputStream originalIn = System.in;
            PrintStream originalOut = System.out;

            // 创建一个 ByteArrayInputStream 作为新的标准输入流
            String input = "Hello, redirected input!";
            ByteArrayInputStream inputStream = new ByteArrayInputStream(input.getBytes());
            System.setIn(inputStream);

            // 创建一个 ByteArrayOutputStream 作为新的标准输出流
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            PrintStream printStream = new PrintStream(outputStream);
            System.setOut(printStream);

            // 读取重定向后的标准输入流
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Reading from redirected input: " + reader.readLine());

            // 写入重定向后的标准输出流
            System.out.println("This is redirected output!");

            // 恢复原始的标准输入流和标准输出流
            System.setIn(originalIn);
            System.setOut(originalOut);

            // 打印重定向后的标准输出流内容
            System.out.println("Redirected output: " + outputStream.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  

在这个示例中,我们首先保存了原始的标准输入流和标准输出流。然后,创建了一个 ByteArrayInputStream 作为新的标准输入流,并将其设置为当前的标准输入流。同时,创建了一个 ByteArrayOutputStream 作为新的标准输出流,并将其设置为当前的标准输出流。接下来,我们可以读取重定向后的标准输入流和写入重定向后的标准输出流。最后,我们恢复了原始的标准输入流和标准输出流,并打印了重定向后的标准输出流内容。

通过这种方式,我们可以在 Java 中实现标准输入输出的重定向,从而实现对输入输出的控制和定制。

标签:输出,重定向,标准,System,12.16,new,输入
From: https://www.cnblogs.com/lllyclh/p/17915150.html

相关文章

  • 2023.12.16——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.c#明日计划:学习......
  • 12.16
    上午并没有奥赛课但是感觉化学和语文老师(男的)都挺有意思的尤其是我们的数学老师,刚退一线的数奥教练,年纪不小了,冬天只穿一件棉衣就在教学楼里晃悠,光凭这点直接吊打里里外外穿四层还嫌冷的我下午学校非要在四节奥赛课中间夹了一节物理/生物自习,而且被我们上成了公自(因为没人留......
  • 12.16每日总结
    首先还是展示架构image用来存储图片,api请求token,changecode用来存放图片转base64的代码(base64->changecode),ui放界面,mian用于启动!!,其余是百度图像的专用工具,你们申请然后使用人家的接口时就能看到image文件夹存储图片,里边的不叫image的是基础图片,他们经过转换都叫image。 然后......
  • 12.16记
    还是没能走上捷径。但或许本来就应该这样,我的命运就是如此,若是获得些梦幻般的事物,就理所应当失去,即便挣扎又如何,依然是失去。我如此不堪,堕落,浑浊,却无知地希冀着本不属于我的事物,被打了一巴掌之后才能清醒过来,然后继续去争取。道就应该这样吗?或许吧。或许有些东西还未失去,甚至......
  • 闲话 2023.12.16
    从今天晚上开始要血战一整天了......
  • 12.16
    超级钢琴写了三个小时。然后光顾着调题啥也没干。唐了,交了几遍都只拿了十分,把每个部分检查完后发现原来是DP数组开小了......
  • 2023.12.16模拟赛总结
    这次比赛打的好,但又不好,200pts,rank4,但原本可以360pts的T1每一条边减去端点贡献,最小生成树即可T2从小到大枚举花瓣数,然后对于每一列记录前四大的,防止不能转移,然后直接跑即可赛时打了一个线段树,被卡常+卡空间,hahahaT3暴力,先分解质因数,由于\(\varphi(p^k)=(p-1)p^{k-1}\),那么......
  • 【笔记】2023.12.16 动态规划
    笔记2023.12.16:动态规划今天题目很多,可能有些题不口胡了。LOJ6089小Y的背包计数问题前\(\sqrtn\)个物品直接做单调队列优化是\(O(n\sqrtn)\)。大于\(\sqrtn\)的是完全背包。考虑到完全背包\(v\)的OGF为\(\dfrac{1}{1-x^{v}}\)。这不行。你考虑到对于一个物......
  • Nodejs的安装以及配置(node-v12.16.1-x64.msi)
    Nodejs的安装以及配置1、安装node-v12.16.1-x64.msi点击安装,注意以下步骤本文设置nodejs的安装的路径:D:\soft\nodejs  继续点击next,选中AddtoPATH,旁边的英文告诉我们会把环境变量给我们配置好 当然也可以只选择Node.jsruntime,根据自己需要选择安装 下面如......
  • 那些年,这些年……2011.12.16
    那些年我还是小屁孩,那些年我什么都不懂,那些年学习只是件有点兴趣的事,从没有想过为什么要学习,那些年刚刚听的流行歌曲是老鼠爱大米和一千年以后,那些年对于感情什么都不懂,也许早点懂或许能骗骗小女孩什么的,那些年母亲管我很严格,那些我很瘦说真的,那些年似乎我很优秀,那些年第一次......