簡體   English   中英

C#向/從控制台讀取/寫入字節

[英]c# reading/writing bytes to/from console

我有一個byte[]數組,想將其寫入stdout: Console.Out.Write(arr2str(arr)) 如何將byte[]轉換為字符串,以便app.exe > arr.txt可以完成預期的工作? 我只想使用管道將數組保存到文件中,但是編碼使事情搞砸了。

稍后,我想從stdin中讀取該字節數組: app.exe < arr.txt並得到相同的結果。

我該如何做這兩件事:向/從stdin / stdout寫入和讀取字節數組?

編輯:

我正在使用string s = Console.In.ReadToEnd() ,然后使用System.Text.Encoding.Default.GetBytes(s) 我正在使用System.Text.Encoding.Default.GetString(bytes)從數組轉換為字符串,但是當與<>一起使用時,這不起作用。 “無效”是指在管道上進行寫入和讀取不會返回相同的結果。

要使用二進制文件,您希望Console.OpenStandardInput()檢索您可以讀取的Stream。 SO的其他線程對此進行了介紹,例如: 從Console.In讀取二進制數據。

如果要寫入Console.WriteLine,則需要將文本編碼為可打印的格式。 如果要輸出為二進制文件, 則不能使用Console.WriteLine

如果仍然需要輸出到控制台,則需要使用Console.OpenStandardOutput()打開原始流,或者調用Convert.ToBase64String將字節數組轉換為字符串。 還有Convert.FromBase64String可以從base64返回到字節數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM