重定向
《算法4》第一章1.1.10 的二分查找,在命令行中,书本给出的
% java BinarySearch tinyW.txt < tinyT.txt
相信很多人都有疑问,这是什么意思?
其实“ < ” , " > " 这是重定向的提示符。
这行命名的意思是:从tinyT.txt文件中读取一系列的数值,运行在BinarySearch这个类的main方法上,tinyW.txt作为args[]数值的第一个参数传递进去。
我们首先看看这段程序:
public class BinarySearch {
public static int rank(int[] a, int key) {
// 数组必须是有序的
int lo = 0;
int hi = a.length - 1;
while (lo <= hi) {
// 被查找的键要么不存在,要么必然存在于a[lo..hi]中
int mid = lo + (hi - lo) / 2;
if (key < a[mid]) hi = mid - 1;
else if (key > a[mid]) lo = mid + 1;
else return mid;
}
return -1;
}
public static void main(String[] args) {
// read the integers from a file
In in = new In(args[0]);
int[] whitelist = in.readAllInts();
// sort the array
Arrays.sort(whitelist);
// read integer key from standard input; print if not in whitelist
while (!StdIn.isEmpty()) {
// 读取键值,如果不存在于白名单中则将其打印
int key = StdIn.readInt();
if (BinarySearch.rank(whitelist, key) == -1)
StdOut.println(key);
}
}
}
上述代码,用args[0] 读取tinyW.txt文件的内容,保存在了whitelist数组中,而 < tinyT.txt 采用了重定向标准输入,也就是说,系统直接读取了tinyT.txt作为了输入流,读取这个文件的内容保存在key变量。
Eclipse重定向输入的配置(MAC)
1.保存你的测试数据文件在任意目录下,我这里把tinyT.txt和tinyW.txt保存在工程的testcase目录下。
1.png
2.点击 Run -> Run Configurations
2.png
3.选择Arguments页签,
Program arguments:指定tinyW.txt文件的路径
3.png
4.选择Common页签,
Input File:指定重定向输入文件tinyT.txt的路径
4.png
5.运行程序,ok!
5.png
Eclipse重定向输出的配置(MAC)
将标准输出重定向到一个文件
% java RandomSeq 1000 100.0 200.0 < randomresult.txt
以上命令行,在Eclipse的配置如下:
点击 Run -> Run Configurations
1.选择Arguments页签,
Program arguments:设置入参
2.1.png
2.选择Common页签,
Output File:指定输出的文件路径
2.2.png
3.运行程序,ok!
2.3.png
如有需要在IDEA配置重定向功能,请移步到
https://www.jianshu.com/p/6b423699007d
网友评论