【发布时间】:2012-12-23 22:55:25
【问题描述】:
在java中你可以这样做:
File file = new File(filepath);
PrintStream pstream = new PrintStream(new FileOutputStream(file));
System.setOut(pstream);
byte[] bytes = GetBytes();
System.out.write(bytes);
我想在 C# 中做类似的事情。我试过了,但没有用:
StreamWriter writer = new StreamWriter(filepath);
Console.SetOut(writer);
byte[] bytes = GetBytes();
Console.Out.Write(bytes);
看起来这里的主要问题是 Write 方法不接受字节数组作为参数。
我知道我可以使用 File.WriteAllBytes(filepath, bytes),但我希望 C# 代码尽可能接近原始 java 代码。
【问题讨论】:
-
为什么不直接将字节写入
StreamWriter?字节不写到控制台,字符串是。您拥有的 Java 代码正在将字节数组的字符串 representation 写入控制台。您需要模拟 Java 使用的表示并将其写入StreamWriter。 -
删除
[java]标签作为答案不会是关于java的。 -
简而言之,您根本不应该这样做。标准输入和输出仅限于文本,而不是二进制数据。
标签: c# stream console textwriter