捕获控制台流输入
我想制作一个读取流输入的控制台应用程序(c# 3.5)。
像这样:
dir> MyApplication.exe
该应用程序读取每一行并向控制台输出一些内容。
走哪条路?
谢谢
I would like to make a console application (c# 3.5) which reads stream input.
Like this:
dir > MyApplication.exe
The app reads each line and outputs something to the console.
Which way to go?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您必须使用管道 (
|
) 将dir
的输出通过管道传输到应用程序中。您在示例中使用的重定向 (>
) 将中继文件Application.exe
并在那里写入dir
命令的输出,因此,损坏您的应用程序。要从控制台读取数据,您必须使用 Console.ReadLine 方法,例如:
You have to use a pipe (
|
) to pipe the output of thedir
into the application. Redirect (>
) that you have used in your example will trunk the fileApplication.exe
and write the output ofdir
command there, thus, corrupting your application.To read the data from the console, you have to use Console.ReadLine method, for example:
使用控制台。阅读/ReadLine 从标准输入流读取。
或者,您可以通过 控制台.In。
Use Console.Read/ReadLine to read from the standard input stream.
Alternatively, you can get direct access to the stream (as a TextReader) via Console.In.
在窗口应用程序或任何其他类型的集成中添加的做法如下:
A practice to add in your window app or any other type of integration is as below:
这实际上取决于您想要做什么以及您想要使用什么类型的流。据推测,您正在谈论读取文本流(基于“应用程序读取每一行......”)。因此,您可以执行以下操作:
您的 inputStream 将派生类型 System.IO.Stream(例如 FileStream)。
It really depends on what you want to do and what type of stream you want to work with. Presumably, you are talking about reading a text stream (based on "the app reads each line..."). Therefore, you could do something like this:
Your inputStream would derive of type System.IO.Stream (like FileStream, for example).