import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;

import java.io.*;

public class Test {
    public static void main(String[] args) {
//        Echo.test();
//        ChangeSystemOut.test();
        Redirecting.test();
    }
}

class Echo {
    public static void test() {
        BufferedReader stdin = new BufferedReader(
                new InputStreamReader(System.in));

        try{
            String s;
            while ((s = stdin.readLine()) != null&&s.length()!=0) {
                System.out.println(s);
            }
        } catch (IOException e) {
            //e.printStackTrace();
            throw new RuntimeException(e);
        }

    }
}

class ChangeSystemOut {
    public static void test() {
        PrintWriter out = new PrintWriter(System.out,true);
        out.println("Hello, world");
//        out.close();
    }
}

class Redirecting{
    public static void test() {
        try{
            PrintStream console = System.out;

            //创建输入流,用于重定向输入
            BufferedInputStream in = new BufferedInputStream(
                    new FileInputStream("./src/Test.java"));

            //创建输出流,用于重定向输出
            PrintStream out = new PrintStream(
                    new FileOutputStream("./src/out"));

            System.setIn(in);
            System.setOut(out);
            System.setErr(out);

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            try{
                String str;
                while ((str = br.readLine()) != null) {
                    System.out.println(str);
                }
            }finally {
                br.close();
                out.close();
            }
            System.setOut(console);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e){
            e.printStackTrace();
        }

    }
}

Java编程思想:标准I/O的更多相关文章

  1. Java编程思想——标准 I / O

    将Syetem.out转换成PrintWriter 标准I/O重定向: 控制台信息量大,滚动快,查看困难 setIn(InputStream) setOut(...) setErr(...) 新I/O ...

  2. Java编程思想(11~17)

    [注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第十一章 持有对象 11.1 泛型和类型安全的容器>eg: List<St ...

  3. Java编程思想(后)

    Java编程思想(后) 持有对象 如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序. Java中的库基本类型: List, Set, Queue和Map --- 称为集 ...

  4. Java编程思想(前十章)

    Java编程思想 有C++编程基础的条件下, 前10章可以快速过一下,都是基本语法,不需要花太多时间. 着重中后段的一些章节,类型信息.泛型.容器.IO.并发等. 中文翻译版 阅读地址 对于一个架构师 ...

  5. Kotlin 或将取代 Java——《Java 编程思想》作者 Bruce Eckel [转]

    Bruce Eckel 是<Java 编程思想>.<C++编程思想>的作者,同时也是 MindView 公司的总裁,该公司向客户提供软件咨询和培训.他是 C++ 标准委员会拥有 ...

  6. 《Java编程思想第四版》附录 B 对比 C++和 Java

    <Java编程思想第四版完整中文高清版.pdf>-笔记 附录 B 对比 C++和 Java “作为一名 C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且 Java 的语法无疑是 ...

  7. JAVA编程思想读书笔记(四)--对象的克隆

    接上篇JAVA编程思想读书笔记(三)--RTTI No1: 类的克隆 public class MyObject implements Cloneable { int i; public MyObje ...

  8. 再读《Java编程思想 》

    前段时间在豆瓣上无意间看到一个帖子"我为什么把thinking in java 读了10遍",是11年的帖子,下面评论至今,各种声音都有,不过大多数还是佩服和支持的.我个人来讲也是 ...

  9. 24.JAVA编程思想——违例差错控制

    24.JAVA编程思想--违例差错控制 Java 的基本原理就是"形式错误的代码不会执行". 与C++类似,捕获错误最理想的是在编译期间,最好在试图执行程序曾经.然而.并不是全部错 ...

  10. 33.JAVA编程思想——JAVA IO File类

    33.JAVA编程思想--JAVA IO File类 RandomAccessFile用于包括了已知长度记录的文件.以便我们能用 seek()从一条记录移至还有一条:然后读取或改动那些记录. 各记录的 ...

随机推荐

  1. Windows10 【系统周期表】【系统下载表】【大型软件表】

    系统周期表 商用名称 商用英文名 代号 版本 系统版本 上市日期 服务周期 备注 Windows 10 无 Threshold 1 1507 10.0.10240.17443 2015.07.29 2 ...

  2. 百度网盘web端项目总结

    项目背景 网盘作为一个在线备份存储,共享文件的工具类产品,给人们的工作和生活带来了很大的帮助和便利.百度网盘是目前国内使用量最大的网盘产品,至今发展已有4年,总用户数超4亿,为了让用户有着更好的使用体 ...

  3. SharePoint Add-in Model 介绍 - 引文(先导篇)

    1. SharePoint 平台 如果你已经很熟悉 SharePoint 平台,可跳过本章节. 1.1 SharePoint 是什么 在介绍 Add-in Model 之前,简要提一下 SharePo ...

  4. 设置windows2008系统缓存大小限制,解决服务器运行久了因物理内存耗尽出僵死(提升权限后,使用SetSystemFileCacheSize API函数,并将此做成了一个Service)

    声明: 找到服务器僵死的原因了,原因是虚拟内存设置小于物理内存. 只要虚拟内存设置为系统默认大小就不会出生僵死的现象了. 当时因为服务器内存48G,系统默认虚拟内存大小也是48G, 觉得太占硬盘空间, ...

  5. Qt技术优势

    1. Qt这个C++的图形库由Trolltech在1994年左右开发.它可以运行在Windows,Mac OS X, Unix,还有像Sharp Zaurus这类嵌入式系统中.Qt是完全面向对象的. ...

  6. c#实现类似数据的行锁

    当我们有一些这样的需求,比如某个订单中下单,修改等等这些是单例执行的,不能同步操作,当然这样的情况你可以使用数据库的行锁来实现,但是我们代码里面实现的话 ,我们也要用到锁,大部分情况下我们使用lock ...

  7. How Qt Signals and Slots Work(感觉是通过Meta根据名字来调用)

    Qt is well known for its signals and slots mechanism. But how does it work? In this blog post, we wi ...

  8. 管道Demo

    使用管道实现读取DOS命令结果,界面如下: 主要代码如下: UpdateData(TRUE); //创建一个管道,用于接收命令执行结果 SECURITY_ATTRIBUTES sa; ZeroMemo ...

  9. PHP PSR4自动加载代码赏析

    第一部分是引入自动加载配置文件 1.入口文件:autoload.php里面没什么东西,就是导入ComposerAutoloader主题文件,一般由一个复杂的名字,不过不用担心就是机器随机生成的一个码而 ...

  10. UTM (Urchin Tracking Module) codes

    UTM Codes are a great way to see the results of your offline marketing In today’s day and age, we ar ...