c# int到char在流写入器中的转换
本文关键字:转换 int char | 更新日期: 2023-09-27 18:16:39
我想以某种方式(如下所述)从数组转换字符串值并将字符保存到文件。
从…:
- 我有字符串[,,]数组与十六进制值(完全保存-例如值1A被保存为"1A")
- 我将每个单元格转换为int值
- 将int值转换为char
- 使用
StreamWriter
保存字符到文件
代码:
StreamWriter streamWriter = new StreamWriter(this.outputFilePath);
for (int i = 0; i < this.workingArray.GetLength(0); i++)
{
for (int j = 0; j < this.workingArray.GetLength(1); j++)
{
for (int k = 0; k < this.workingArray.GetLength(2); k++)
{
int value = int.Parse(this.workingArray[i, j, k], System.Globalization.NumberStyles.HexNumber);
char symbol = Convert.ToChar(value);
streamWriter.Write(symbol);
}
}
}
streamWriter.Close();
问题是,当我的workingArray
单元格值为FE时,我在文件中获得值CE。我不知道为什么它以错误的方式保存值。此外,符号代码为254,经过十六进制转换后,它正好是FE,但在输出文件中它的值是错误的。
这个问题有什么解决办法吗?
使用FileStream:
FileStream binaryWriter = new FileStream(this.outputFilePath, FileMode.Create,FileAccess.ReadWrite);
//some code here
binaryWriter.WriteByte(0xFE);
//some code here
binaryWriter.Close();
您的流写入器使用UTF-8持久化该字符。它将为您的单个字符写入两个字节。
要改变这一点,您需要指示StreamWriter
使用不同的编码