从Console.In读取二进制数据

有没有办法从C#中的stdin读取二进制数据?

在我的问题中,我有一个程序,它启动并在stdin上接收二进制数据。 基本上: C:>myImageReader < someImage.jpg

我想写一个程序,如:

 static class Program { static void Main() { Image img = new Bitmap(Console.In); ShowImage(img); } } 

但是Console.In不是Stream,它是TextReader。 (如果我尝试读取char [],TextReader会解释数据,不允许我访问原始字节。)

任何人都知道如何获得实际的二进制输入?

干杯,莱夫

要读取二进制文件,最好的方法是使用原始输入流 – 这里显示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); } } } 

如何使用指定文件路径名的参数并在代码中打开二进制输入文件?

 static class Program { static int Main(string[] args) { // Maybe do some validation here string imgPath = args[0]; // Create Method GetBinaryData to return the Image object you're looking for based on the path. Image img = GetBinaryData(imgPath); ShowImage(img); } }