C# 用C编写文件的顺序#

C# 用C编写文件的顺序#,c#,c#-2.0,C#,C# 2.0,这里我声明了一个BinaryWriter,用于创建输出文件。 我需要清楚地知道文件是如何编写的? 意思是,第1、2、3行逐字节写入文件,如果我是正确的话,一次写入一个字节 这个某个对象。text保存一个值2000 第4行准确写入多少字节??(2字节/16位,因为UInt16的是16位)二进制编写器使用位转换器类创建写入底层流的字节序列。了解最底层情况的一个好方法是使用.NETReflector。它可以对程序集进行反编译,并且可以轻松地用于了解框架实现的细节 大多数二进制写入方法使用little

这里我声明了一个BinaryWriter,用于创建输出文件。 我需要清楚地知道文件是如何编写的? 意思是,第1、2、3行逐字节写入文件,如果我是正确的话,一次写入一个字节

这个
某个对象。text
保存一个值
2000


第4行
准确写入多少字节??(2字节/16位,因为UInt16的是16位)

二进制编写器使用
位转换器
类创建写入底层流的字节序列。了解最底层情况的一个好方法是使用.NETReflector。它可以对程序集进行反编译,并且可以轻松地用于了解框架实现的细节


大多数二进制写入方法使用little endian中的本机表示(尽管endian是特定于体系结构的,并且在XBOX和Windows等平台之间有所不同)。唯一的例外是字符串。默认情况下,字符串使用UTF-8编码。

查看MSDN中的图表,查看写入的字节数:


这些人都不会写任何东西。您只声明一个可能包含二进制编写器的变量,但从未向其附加实例。您的编写器仍然是空的。修复此问题后,我建议您实际编译并运行代码,然后查看该文件以找到答案。@user667389,您会惊讶地发现,有人每天发布多少次问题,这些问题都归结为没有实际实例化对象@乔尔·科霍恩不知道你是不是那种人。无论你发布什么,我们都必须假设你的代码是真实的。
System.IO.BinaryWriter outfile;

System.IO.FileStream fs = new System.IO.FileStream(some_object.text, System.IO.FileMode.Create);

outfile = new System.IO.BinaryWriter(fs);

outfile.Write('A');  // Line 1
outfile.Write('B');  // Line 2
outfile.Write('C');  // Line 3
outfile.Write( Convert.ToUInt16(some_object.text, 16) );   // Line 4
outfile.Write((ushort)0);  // Line 5