【发布时间】:2014-04-15 08:33:39
【问题描述】:
我想知道是否可以发送一个包含 4 个成员的整个 obj:
string name
string lastname
int StudentID
int CitizenID
使用文件流命令以二进制格式保存在 .txt 文件中?
我知道序列化,它很容易将一个 obj 发送到一个 .xml 文件,但是当我使用它制作我的程序并将它展示给我的老师时,他说他不想让我使用它,说我必须在 C++ 中使用 fstream、instream、outstream 和 ... 等基本文件流命令,并告诉我他希望以二进制格式保存 .txt 文件。
现在我的问题是,我可以将整个 obj 发送到 C# 中的 .txt 文件还是必须像字符串一样发送它,这将是很多工作。
因为我必须将所有成员转换为字符串,然后在每个成员的末尾放置一个指示符或其他东西,以便我以后可以读取它们并将它们分开。
【问题讨论】:
-
他希望用 C++ 而不是 C# 来完成?这是要澄清的重要的第一部分。您的问题被标记为 C#,并且您问是否可以将对象发送到 C# 中的文本文件,但是如果您的老师只会说“不,我告诉您用 C++ 来做”,那么您在这里得到的任何帮助有什么用?请澄清:您需要在 C# 或 C++ 中完成此操作吗?
-
我质疑保存为二进制格式并附加 .TXT 文件扩展名的有效性。如果您使用二进制序列化机制,您将无法打开文件并在记事本中正确读取它。所有文件都是二进制文件,它们由字节组成。具有 .TXT 扩展名是一个信号,它告诉程序这个由字节组成的文件在某种程度上可以被解释为由字符组成的文本。但是仅仅附加 .TXT 并不能使它成为文本或可读的。
-
@LasseV.Karlsen,嘿,他不想用 C++,他说随心所欲,但他在这堂课之前是我们的 C++ 老师,所以他告诉我我想要你使用 fstream instream outstream 以及你在 C++ 中使用或在 C# 中为你的程序均衡它们,并使二进制 .txt 文件不是 .xml
-
@LasseV.Karlsen 和 yeh ,我知道我无法在记事本等中打开它,但我应该可以用我的程序再次打开它,这样我就可以搜索记录和如果需要,编辑或删除它们。
-
@Pedram 注意:在文件内编辑和删除(无需重写整个文件)并不像您想象的那么简单,如果这是您需要设计的实际需求.例如,固定长度的记录或填充,以及可能的逻辑删除标志。或逻辑删除(设置一位)并附加到文件末尾等。
标签: c# io filestream