• 输入和输出--重定向标准输入和输出


    • 重定向标准输入和输出
    Java的标准输入和输出分别通过system.in和system.out来代表,默认情况下他们分别代表键盘和显示器。
    在system类中提供了3个重定向标准输入和输出的方法:
    setErr(PrintStream err)           重新分配“标准”错误输出流。
    setIn(InputStream in)              重新分配“标准”输入流。

    setOut(PrintStream out)         重新分配“标准”输出流。


    当然我们可以自己来写程序,修改我们应用程序的输入和输出。比如说现在不希望标准输出到显示器上,而是我自己的一个文件里面,或者是说我现在不需要从键盘上来录入内容,而是读我本地的一个文本。


    具体的代码如下:


    import java.io.FileOutputStream;
    import java.io.PrintStream;
    
    /**
     * 
     * @version 1L
     * @author LinkinPark
     * @since 2014-12-30
     * @motto 梦似烟花心似水,同学少年不言情
     * @desc ^重定向标准输出流,讲system.out输出到指定的文件,而不是显示器上。
     */
    public class Linkin
    {
    
    	public static void main(String[] args)
    	{
    		PrintStream ps = null;
    		try
    		{
    			ps = new PrintStream(new FileOutputStream("src/LinkinPark..."));
    			System.setOut(ps);
    			System.out.println("这里重定向了标准输出。。。");
    			System.out.println(new Linkin());
    		}
    		catch (Exception e)
    		{
    			e.printStackTrace();
    		}
    		finally
    		{
    			if (ps != null)
    			{
    				ps.close();
    			}
    		}
    	}
    }

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.util.Scanner;
    
    /**
     * 
     * @version 1L
     * @author LinkinPark
     * @since 2014-12-30
     * @motto 梦似烟花心似水,同学少年不言情
     * @desc ^重定向标准输入流,将system.in重定向到指定的文件,而不是键盘输入了
     */
    public class Linkin
    {
    
    	public static void main(String[] args)
    	{
    		FileInputStream fis = null;
    		try
    		{
    			fis = new FileInputStream("src/LinkinPark...");
    			System.setIn(fis);
    			//使用system.in创建Scanner对象,用来获取标准输入
    			Scanner sc = new Scanner(System.in);
    			sc.useDelimiter("
    ");//增加分隔符
    			while (sc.hasNext())
    			{
    				System.out.println("指定的文件里面输入的内容是:" + sc.next());
    			}
    		}
    		catch (Exception e)
    		{
    			e.printStackTrace();
    		}
    		finally
    		{
    			if (fis != null)
    			{
    				try
    				{
    					//这里也要捕获异常的,有点恶心的
    					fis.close();
    				}
    				catch (IOException e)
    				{
    					e.printStackTrace();
    				}
    			}
    		}
    	}
    }


  • 相关阅读:
    为什么webstrom无法格式化代码?
    总结jq的一些特效
    欢迎自己入住博客
    JavaScript基础
    HTTP协议的概念作用和特点
    STM32(二十五)读写内部flash
    STM32(二十四)MDK编译过程以及文件类型全解
    STM32(二十三)RTC-实时时钟
    STM32(二十二)DAC输出正弦波
    STM32(二十一)SDIO-SD卡读写测试
  • 原文地址:https://www.cnblogs.com/LinkinPark/p/5233106.html
Copyright © 2020-2023  润新知