Java命令行的 重定向 与 管道

在学习《算法》第四版中了解到 重定向 和 管道的知识,这里写个博客算做个笔记

重定向

标准输入输出使我们能够利用许多操作系统都支持的命令行的扩展功能。只需要向启动程序的命令中加入一个简单的提示符,就可以将它的标准输入 重定向 至一个文件。文件的内容既可以永久保存,也可以作为另一个程序的输入:

提示符 “ > ”

例如:

java RandomSeq 1000 100.0 200.0 > data.txt

将一个文件重定向为标准输入:
Java命令行的 重定向 与 管道_第1张图片

提示符 “ < ”

这个命令表示标准输出流不被打印到终端窗口,而是被写入到一个叫data.txt的文件中。每次调用打印输出的函数就会向文件中追加一段文本。终端不会有任何输出,直接被写入到 “>” 后的文件中 。

类似,也可以重定向标准输入以使从文件中而不是终端应用程序中读取数据:

例如:
java Average < data.txt

将标准输出重定向到一个文件:
Java命令行的 重定向 与 管道_第2张图片

会从文件data.txt中读取数值并计算它们的平均值。" < "是一个提示符,它告诉操作系统读取文本data.txt作为输入流而不是在终端窗口等待用户的输入


管道

提示符 “ | ”

将一个程序的输出重定向为另一个程序的输入叫做 管道。

例如:
java RandomSeq 1000 100.0 200.0 | java Average

将一个程序的输出重定向为另一个程序的输入
Java命令行的 重定向 与 管道_第3张图片

这个命令将RandomSeq 的标准输出和Average的标准输入指定为同一个流。
在Average运行时RandomSeq 将它生成的数字输入了终端窗口

实际顺序取决于操作系统:①它可能会先运行RandomSeq 并产生一些输出,然后再运行Average来消耗这些输出
②可以先运行Average,直到它需要一些输入然后再运行RandomSeq 来产生一些输出。


你可能感兴趣的:(Java命令行的 重定向 与 管道)