zoukankan      html  css  js  c++  java
  • Java从零开始学三十八(JAVA IO- 重定向IO)

    一、三个静态变量

    java.lang.System提供了三个静态变量

    • System.in(默认键盘)
    • System.out(默认显示器)
    • System.err

    二、重写向方法

    System提供了三个重定向方法

    方法 说明
    static void setErr(PrintStream errr) 重定向标准错误输出流
    static void setIn(InputStream in ) 重定向标准输入流
    static void setOut(PrintStream out) 重定向歀输出流

    三、例子

    3.1、重定向输入流

    package com.pb.io.reio;
    
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    
    /*
     * 重定向输入
     * 1.有一个已经初始化的InputStream输入流
     * 2.调用System.setIn()方法,将标淮输入流重定向到目的输入流
     * 3.读取System.in中的内容
     */
    public class ReIn {
    
        public static void main(String[] args) throws UnsupportedEncodingException {
                
        
            try {
                //1.声明一个输入流
                FileInputStream fis=new FileInputStream("d:/test/s1.txt");
                //2.重定向
                System.setIn(fis);
                //3.读取System.in标准输入流中的内容
                BufferedReader br=new BufferedReader(new InputStreamReader(System.in,"gb2312")); //设置字符编码
                //4.输出System.in中的内容
                String line=null;
                while((line=br.readLine())!=null){
                    System.out.println(line);
                }
                //5.关闭流
                br.close();
                fis.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
    }

    3.2、重定向输出流

    package com.pb.io.reio;
    
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.PrintStream;
    
    /*
     * 重定向标淮输出流
     * 1.初始化PrintStream对象
     * 2.调用System.setOut()方法,将标淮输出流重定向至PrintStream对象
     * 3.操作System.out流,
     */
    public class ReOut {
    
        public static void main(String[] args) {
            
            try {
                //1.声明一个输出流PrintStream对象
                PrintStream ps=new PrintStream(new FileOutputStream("d:/test/ps.txt",true));   //追加内容
                //2.重定向标淮输出流
                System.setOut(ps);
                //3.使用PrintStream对象向流中写信息
                System.out.println("测试重定向成功了没有!");
                System.out.println(new ReOut());
                ps.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            
    
        }
    
    }
  • 相关阅读:
    一些可以参考的常用工具库类整理
    Java(Android)线程池 总结
    JAVA泛型
    设计模式总结
    原型模式
    工厂模式与抽象工厂模式
    组合模式
    适配器模式
    建造者模式
    外观模式
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4307793.html
Copyright © 2011-2022 走看看