我有一些C++代码通过STL字符串和文本i/o将字节值保存到文件中,并且对如何在C#中执行此操作感到困惑.
首先,我将字节数组转换为字符串并将每个数组存储为文本文件中的一行:
StreamWriter F
loop
{
byte[] B; // array of byte values from 0-255 (but never LF,CR or EOF)
string S = B; // I'd like to do this assignment in C# (encoding? ugh.) (*)
F.WriteLine(S); // and store the byte values into a text file
}
Run Code Online (Sandbox Code Playgroud)
稍后...我想反转步骤并取回原始字节值:
StreamReader F;
loop
{
string S = F.ReadLine(); // read that line back from the file
byte[] B = S; // I'd like to convert back to byte array (*)
}
Run Code Online (Sandbox Code Playgroud)
你是如何做这些作业的(*)?
class Encoding支持你需要的,下面的例子假设你需要转换string为byte[]using UTF8,反之亦然:
string S = Encoding.UTF8.GetString(B);
byte[] B = Encoding.UTF8.GetBytes(S);
Run Code Online (Sandbox Code Playgroud)
如果您需要使用其他编码,您可以轻松更改:
Encoding.Unicode
Encoding.ASCII
...
Run Code Online (Sandbox Code Playgroud)