使用StandardInput将字节流从应用程序传递到控制台应用程序



我正试图使用Process方法调用exe应用程序,我需要传递pdf字节流。在使用StandardInput时,我正在尝试这样的东西:

var stream = myexe.StandardInput;
try
{
stream.Write(content);
}
finally
{
stream.Close();
}

在另一端,我正试图阅读以下内容:

var bytesInStream = new byte[10*1024];
var input = Console.OpenStandardInput();
var temp = input.Read(bytesInStream, 0, (int)bytesInStream.Length);

如果您查看Process类下的StandardInput方法,它将返回StreamWriter。如果使用stream.Write(object")。它实际上写入了字符串值,您可以在另一端读取这些值。对于字节数组pdf流,您需要使用

stream.BaseStream.Write(content, 0, content.Length); 

在另一端这样读:

` var input = Console.OpenStandardInput();
var temp = input.Read(bytesInStream, 0, (int)bytesInStream.Length);`

如果不确定字节流的大小,也可以将字节流长度作为args发送。

最新更新