• 中文
    • English
  • 注册
  • 查看作者
    • 关于算法4中largeW.txt < largeT.txt 的重定向问题

      BinarySearch作为算法4这本书的第一个程序,相信很多人都有疑问,在命令行中,课本给出的

      java BinarySearch largeW.txt < largeT.txt

      关于重定向,本站的Java重定向和管道以及课本的第24页都有简介,但是上面这段话到底是什么意思呢?

      关于算法4中largeW.txt < largeT.txt 的重定向问题

      首先,我们创建largeW.txt 和 largeT.txt 这两个文本文件,内容编辑如下:

      largeW.txt:
      1 2 3 4 5 6 7 8
      
      largeT.txt 
      1 2 3 4 5 6 7 8 9

      接下来我们在命令行中执行java BinarySearch largeW.txt < largeT.txt,如下图:

      关于算法4中largeW.txt < largeT.txt 的重定向问题

      可以看到,输出的99,也就是说,上述代码是将largeT.txt中的所有数字作为key,largeW.txt 中的所有数字作为查询的数组,也就是将largeT.txt中的每个数字作为key在largeW.txt中查找。

      读懂了上述代码,那么largeW.txt < largeT.txt到底是什么意思呢?其实这大家有疑问,主要的原因是因为将largeW.txt < largeT.txt看成另一个整体这里largeW.txt < largeT.txt 其实是两部分 :

      largeW.txt 作为args[0] 

      < largeT.txt 作为重定向输入 

      上述代码首先采用args[0] 将largeW.txt文件的内容,保存在了whitelist数组中 而接下来的 < largeT.txt 采用了重定向标准输入,也就是说,此时系统直接读取了largeT.txt作为了输入流,所以直接可以读取这个文件保存在key变量里了。

      为了证明上面的理论,我们将< largeT.txt 去掉,如下图:

      关于算法4中largeW.txt < largeT.txt 的重定向问题

      可以看到,此时需要我们手动输入了,输入10000,没有找到这个数字,所以输出,而输入2,找到了则不输出。

    • 0
    • 4
    • 0
    • 3.6k
    • 请登录之后再进行评论

      登录
    • 0
      谢谢作者呀~明白了!
    • 0
      为什么打印了两个9,不应该是一个吗?
    • 0
      张甲49站长
      @木瓜 你好
    • 0
      你好
    • 赞助本站

      • 支付宝
      • 微信
      • QQ

      感谢一直支持本站的所有人!

      单栏布局 侧栏位置: