java输出重定向

Java的标准输入,输出分别是通过System.in和System.out来代表.默认情况下他们分别代表键盘和显示器.

System类里提供了3个重定向标准输入,输出的方法.

static void setErr(PrintStream err):重定向”标准”错误输出流.
static void setIn(InputStream in):重定向”标准”输入流
static void setOut(PrintStream out):重定向”标准”输出流.

 

下面的程序通过重定向标准输出流,将System.out的输出重定向到文件输出,而不是屏幕上输出.运行程序后D盘下有文件生成.

注意:路径不可以写成c:\user\local\myDir\test1.txt这种,必须用两个左斜线作为分割。 如果路径直接写出test1.txt,那会默认在项目根目录下创建。 

public class RedirectOut {

    public static void main(String[] args) throws FileNotFoundException {
        //一次性创建PrintStream输出流
        PrintStream ps=new PrintStream(new FileOutputStream("D://test1.txt"));
        //将标准输出重定向到PS输出流
        System.setOut(ps);
        //向标准输出输出一个字符串
        System.out.println("Hello world");
    }
}

  

下面是重定向标准输入,从而可以把System.in重定向到指定文件,而不是键盘输入.首先创建了一个FileInputStream输入流,并使用System的setIn方法将系统标准输入重定向到该文件输入流.运行程序,直接输出的是文本文件的内容,表明程序不再使用键盘作为输入,而是使用文本文件作为标准输入源.

package org.credo.io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class RedirectIn {

    public static void main(String[] args) throws FileNotFoundException {
        FileInputStream fis=new FileInputStream("D://test.txt");
        //将标准输入重定向到fis输入流
        System.setIn(fis);
        //使用System.in创建Scanner对象,用于获取标准输入
        Scanner sc=new Scanner(System.in);
        //增加下面一行只把回车作为分隔符
        sc.useDelimiter("\n");
        //判断是否还有下一个输入项
        while(sc.hasNext()){
            //输出输入项
            System.out.println("键盘输入的内容是:"+sc.next());
        }
    }

}

  

原文地址:https://www.cnblogs.com/xinruyi/p/10202345.html

时间: 2024-11-05 16:37:56

java输出重定向的相关文章

java笔记--重定向输出流实现程序输出到日志

重定向输出流实现程序输出到日志 利用System类中的setOut()方法,实现输出流的重定向,把它指向一个文件输出流,从而实现日志功能.即: 程序运行后绘制控制台提示运行结束信息,但是在运行过程中的步骤都保存到了日志文件中. 主要方法setOut(): 重新分配System类的标准输出流. public static void setOut(PrintStream out) out表示新的输出流对象 setErr() 重新分配System类的标准错误输出流. public static voi

Java 输入/输出——重定向标准输入/输出

在System类中提供了如下三个重定向标准输入/输出方法. static void setErr?(PrintStream err) Reassigns the "standard" error output stream.(重定向"标准"错误输出流) static void setIn?(InputStream in) Reassigns the "standard" input stream.(重定向"标准"输入流) st

输出重定向与输入重定向

三种工作中最长用到的输出重定向方法: 以ls /home 为例:(下面的两种方法都是把正确的输出结果和错误的输出结果都保存到abc.log文件中) ① ls /home >> abc.log 2>&1 ② ls /home &>> abc.log 还有一种就是充当垃圾回收站的输出方法: ls /home >> /dev/null 输入重定向: wc -l 显示行数 -w 显示多少英文单字 -c 统计字节数 使用方法很简单,自己试着在终端敲一下就会了

Linux中的输出重定向

标准输入输出: 键盘        /dev/stdin        0       标准输入 显示器    /dev/stdout      1       标准输出 显示器    /dev/stderr       2       错误输出 输出重定向 正确输出: 命令 > 文件 以覆盖的形式,把命令的正确输出写入指定文件中 命令 >> 文件 以追加的形式,把命令的正确输出写入指定文件中 错误输出: 命令 2> 文件 以覆盖的形式,把错误信息写入指定文件中 命令 2>&

标准输入输出,输出重定向

标准输入输出: 输出重定向: 正确输出和错误输出同时保存:  命令 &>/dev/null 这条指令把正确输出写入文件中,错误输出丢入黑洞 解释: 放在>后面的&,表示重定向的目标不是一个文件,而是一个文件描述符,内置的文件描述符如下 1 => stdout 2 => stderr 0 => stdin 换言之 2>1 代表将stderr重定向到当前路径下文件名为1的regular file中,而2>&1代表将stderr重定向到文件描述符

shell输出重定向

在linux shell执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名. 标准输入:0(缺省是键盘,为0时是文件或者其他命令的输出) 标准输出:1(缺省是屏幕,为1时是文件) 标准出错:2(缺省是屏幕,为2时是文件) 系统中实际上有12个文件描述符,可以任意使用文件描述符3到9. 文件重定向:改变程序运行的输入来源和输出地点 Command > filename      #把标准输出重定向到一个新文件中

shell--10、Shell 输入/输出重定向

大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端. 重定向命令列表如下: 命令 说明 command > file 将输出重定向到 file. command < file 将输入重定向到 file. command >> file 将输出以追加的方式重定向到 file. n > file 将文件描述符为

Linux输出重定向

> 标准的正确输出重定向 用法示例     find /etc -name *network* > /tmp/findresult.txt 2> 标准的错误输出重定向 用法示例:     ls wrong/ 2> /tmp/wrong.txt &> 正确的以及错误的全部重定向输出     find / -name root &> /tmp/findresult.txt > ,2> ,&> 会清空输出目标文件 >> 追

如何关闭linux系统中的覆盖输出重定向(&gt;)功能

一.问题描述 我们在进行文件操作时经常会用到覆盖输出重定向(>),追加输出重定向(>>),很明显的看出两种输出重定向的符号相差不是很大,但是两种的意义却又很大的差别:前者是会覆盖文件的内容的,而后者并不会覆盖文件的内容!我们在使用追加输出重定向时极有可能由于自己的不小心而使用覆盖重定向,从而导致文件内容的丢失,但是linux系统还是可以解决这种问题的. 二.问题演示 [[email protected]~]# echo "cangls" > /root/test