直截了当的问题。如果CPU在序列化过程中崩溃,文件会被破坏吗?
.NET序列化C#的示例:
public bool TrySerializeToXML<T>(String FilePath, T t, XmlAttributeOverrides XmlAttributeOverrides = null)
{
lock (SerializationLock)
{
XmlSerializer Serializer = null;
try
{
if (XmlAttributeOverrides == null) Serializer = new XmlSerializer(t.GetType());
else Serializer = new XmlSerializer(t.GetType(), XmlAttributeOverrides);
using (TextWriter TextWriter = new StreamWriter(FilePath))
{
Serializer.Serialize(TextWriter, t);
}
}
catch
{
return false;
}
return true;
}
}
答案 0 :(得分:2)
ADJUSTED_LEVEL EMPLOYEE_NUMBER MANAGER DEPARTMENT
1 10 1
2 200 10 2
3 2010 200 2
4 2040 200 2
5 2070 200 2
6 2100 200 2
3 2020 200 2
4 2050 200 2
5 2080 200 2
3 2030 200 2
4 2060 200 2
5 2090 200 2
2 300 10 3
3 3010 300 3
4 3040 300 3
5 3070 300 3
6 3100 300 3
3 3020 300 3
4 3050 300 3
5 3080 300 3
3 3030 300 3
4 3060 300 3
5 3090 300 3
2 400 10 4
3 4010 400 4
4 4040 400 4
5 4070 400 4
6 4100 400 4
3 4020 400 4
4 4050 400 4
5 4080 400 4
3 4030 400 4
4 4060 400 4
5 4090 400 4
2 500 10 5
3 5010 500 5
4 5040 500 5
5 5070 500 5
6 5100 500 5
3 5020 500 5
4 5050 500 5
5 5080 500 5
3 5030 500 5
4 5060 500 5
5 5090 500 5
在流上工作
在这种情况下,该流是XmlSerializer
FileStream
在可刷新缓冲区(默认为4k)上工作,这意味着当缓冲区达到最大值时,它将刷新到磁盘上
如果应用程序崩溃或序列化过程中发生序列化错误,则可能没有(或只有部分数据)刷新到磁盘
原子无疑是在此使用的错误词,无论哪种方式都不是原子