写文件有时需要进行进制的转换,下面一个例子是十进制转十六进制,并写入文件。这里用到了进制的转换和C#文件写入的知识。
十进制转十六进制的方法:
public class HexadecimalConversion
{
public static void WriteBinaryFile(UInt32 data, BinaryWriter fileBinary)//十进制转十六进制
{
byte ch1, ch2, ch3, ch4;
ch1 = Convert.ToByte(data % 256); //低一位
ch2 = Convert.ToByte((data / 256) % 256); //低高位
ch3 = Convert.ToByte((data / 256 / 256) % 256); //高一位
ch4 = Convert.ToByte((data / 256 / 256 / 256) % 256); //高高位
fileBinary.Write(ch1);
fileBinary.Write(ch2);
fileBinary.Write(ch3);
fileBinary.Write(ch4);
}
}
调用转换,并写入文件:
class Program
{
static void Main(string[] args)
{
string filepath = @"F:\test.my";
UInt32 testData = 100;
FileStream fileStream = null;
BinaryWriter binaryWriter = null;
try
{
if (!File.Exists(filepath))
{
using (File.Create(filepath)) { }
}
fileStream = new FileStream(filepath, FileMode.Open);
binaryWriter = new BinaryWriter(fileStream, System.Text.Encoding.GetEncoding("GBK"));
fileStream.Seek(0, SeekOrigin.Begin);
HexadecimalConversion.WriteBinaryFile(testData, binaryWriter);
}
catch
{
}
finally
{
if (fileStream != null)
{
fileStream.Close();
}
if (binaryWriter != null)
{
binaryWriter.Close();
}
}
}
}
运行后,用UE打开文件可以看到已经将100转换为十六进制了: