标题:重定向是什么概念
只看楼主
飞跃的乌龟
Rank: 2
等 级:论坛游民
帖 子:96
专家分:18
注 册:2012-10-20
结帖率:90.32%
已结贴  问题点数:20 回复次数:2 
重定向是什么概念
程序代码:
import import public class J_Echo
{
    public static void mb_echo(InputStream in)
    {
        try
        {
            while(true)
            {
                int i=in.read();
                if(i==-1)
                break;
                char c=(char)i;
                System.out.print(c);
            }
        }
        catch(IOException e)
        {
            System.err.println("发生异常:"+e);
            e.printStackTrace();
        }
    }
    public static void main(String args[])
    {
        mb_echo(System.in);
    }
}




这是第一个文件

程序代码:
import public class J_SetIn
{
    public static void main(String args [])
    {
        try
        {
            System.setIn(new FileInputStream("test.txt"));
            J_Echo.mb_echo(System.in);
        }
        
        catch(Exception e)
        {
            System.err.println("发生异常"+e);
            e.printStackTrace();
        }
    }
}


这是重定向的例程,能具象的解释下什么是重定向吗
搜索更多相关主题的帖子: 定向 
2014-01-12 16:57
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:10 
回复 楼主 飞跃的乌龟
要理解重定向,首先要知晓管道流,因为这里说的重定向就是形象的描述管道流被重置的事情。


你的程序一开始读取的是System.in,也就是接受来自操作系统的标准输入流/dev/stdin,键盘、鼠标、扫描枪(没错,就是超市扫条码那种)等都是标准输入流的输入者。输出流则是System.out,是输出到操作系统的输出终端,默认你知道的输出终端有:显示器、网卡等。

这里就构成了一条管道
键盘->操作系统(/dev/stdin)->JVM(System.in)->Java应用程序->JVM(System.out)->操作系统(/dev/stdout)->显示器

这里所谓的重定向,就是打破管道,将其他输入/输出源接入进来

你给的例子则是去掉了从键盘输入进来的文本流,转而是倒入了从文件读取的文件流。
键盘->操作系统(/dev/stdin)->JVM(System.in)-x->Java应用程序->JVM(System.out)->操作系统(/dev/stdout)->显示器
替换成了
磁盘->操作系统(File.open)->JVM(FileInputStream)->Java应用程序->JVM(System.out)->操作系统(/dev/stdout)->显示器

[ 本帖最后由 神vLinux飘飘 于 2014-1-12 21:04 编辑 ]

淘宝杜琨
2014-01-12 20:50
独行之
Rank: 2
等 级:论坛游民
帖 子:60
专家分:30
注 册:2007-6-19
得分:10 
楼上解释的非常好
2014-01-19 16:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-426437-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.774382 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved