有没有办法从C#中的stdin读取二进制数据?
在我的问题中,我有一个程序,它启动并在stdin上接收二进制数据.基本上:
C:>myImageReader < someImage.jpg
我想写一个程序,如:
static class Program
{
static void Main()
{
Image img = new Bitmap(Console.In);
ShowImage(img);
}
}
Run Code Online (Sandbox Code Playgroud)
但是Console.In不是Stream,它是TextReader.(如果我尝试读取char [],TextReader会解释数据,不允许我访问原始字节.)
有人知道如何访问实际的二进制输入?
干杯,莱夫
Mar*_*ell 26
要读取二进制文件,最好的方法是使用原始输入流 - 这里显示stdin和stdout之间的"echo":
using (Stream stdin = Console.OpenStandardInput())
{
using (Stream stdout = Console.OpenStandardOutput())
{
byte[] buffer = new byte[2048];
int bytes;
while ((bytes = stdin.Read(buffer, 0, buffer.Length)) > 0) {
stdout.Write(buffer, 0, bytes);
}
}
}
Run Code Online (Sandbox Code Playgroud)