要使用XML序列化Dictionary,
我使用SerializableDictionary类。要在TXT文件中写入和读取SerializableDictionary
,我使用以下方法:
// Write
public static void WriteOnFile(string pathFile)
{
XmlSerializer serializer = new XmlSerializer(typeof(SerializableDictionary<string, double>));
using (FileStream fs = File.OpenWrite(pathFile))
{
using (StreamWriter writer = new StreamWriter(fs))
{
serializer.Serialize(fs, databaseMateriali);
}
}
}
// Read
public static SerializableDictionary<string, double> ReadFromFile(string pathFile)
{
SerializableDictionary<string, double> elencoLetto = new SerializableDictionary<string, double>();
using (FileStream fs = File.OpenRead(pathFile))
{
using (StreamReader reader = new StreamReader(fs))
{
fs.Position = 0;
XmlSerializer serializer = new XmlSerializer(typeof(SerializableDictionary<string, double>));
SerializableDictionary<string, double> clone = (SerializableDictionary<string, double>)serializer.Deserialize(fs);
elencoLetto = clone;
}
}
return elencoLetto;
}
如何在不删除和重写整个文件的情况下从此TXT文件中删除XML元素?
答案 0 :(得分:0)
无法从文件中删除字节。您可以标记数据,以便可以使用程序逻辑来不使用它。这样文件保持相同的字节数,但你的逻辑可以“删除”它的一部分。但是你的类似乎不支持这个,所以你必须在删除内存中的条目后重写整个文件。