我有一個自定義類型的列表,他們需要保存/加載到移動設備上的文件(Windows Mobile 6),哪種方法最適合,考慮到設備的有限資源?編輯: 編輯: 數據文件將約爲2-5mb將自定義類型保存到移動設備上的文件的方法?
1
A
回答
2
我們在談論多少數據?
我使用舊設備(HTC-s620,TI OMAP 850 200 MHz處理器)在3-5秒內使用XML序列化保存2mb XML文件。非常簡單的編程模型。很容易做到。有了更新的設備,我相信它會更快。
我的使用場景是每次運行一次滿載和一次完整保存。
[XmlRoot("notes")]
public class NoteList : List<Note>
{
// Set this to 'default' or 'preserve'.
[XmlAttribute("space", Namespace = "http://www.w3.org/XML/1998/namespace")]
public string space = "preserve";
public static void Save(NoteList noteList, string NotesFilePath)
{
if (noteList == null) return;
XmlSerializer serializer = new XmlSerializer(typeof(NoteList));
string tmpPath = NotesFilePath + ".tmp";
using (System.IO.FileStream fs = new FileStream(tmpPath, FileMode.Create, FileAccess.Write))
{
serializer.Serialize(fs, noteList);
fs.Close();
}
if (File.Exists(tmpPath))
{
if (File.Exists(NotesFilePath))
{
string oldFile = NotesFilePath + ".bak";
if (File.Exists(oldFile)) File.Delete(oldFile);
File.Move(NotesFilePath, oldFile);
}
File.Move(tmpPath, NotesFilePath);
}
}
public static NoteList Load(string NotesFilePath)
{
if (!System.IO.File.Exists(NotesFilePath))
return null;
NoteList noteList = new NoteList();
XmlSerializer serializer = new XmlSerializer(noteList.GetType());
using (FileStream fs = new FileStream(NotesFilePath, FileMode.Open, FileAccess.Read))
{
noteList = (NoteList)serializer.Deserialize(fs);
fs.Close();
}
return noteList;
}
}
1
能夠運行Win Mobile 6的設備似乎能夠使用「殘缺」的.NET框架很好地處理自己。但是如果你想要更快的東西,那麼System.IO提供了什麼,我認爲你運氣不好(?)。
「自定義類型」,我收集你指的類,並由此我懷疑一些.NET兼容的類?然後,我不知道你將如何擠出更多的果汁...至少不會超過
this happy camper了。
1
我建議看看SqlLite,如果你想要一個適當的分貝,但沒有膨脹。 SqlLite也具有原子性和電源彈性。否則,保存到平面文件不是問題。請記住,在任何時候,權力都會在你身上消失,包括你寫作的一半。
相關問題
- 1. Drupal 7 - 將文件遷移到自定義文件類型
- 2. wp_insert_post未在設備上保存自定義分類
- 3. 在構建期間將自定義文件部署到移動設備
- 4. 將自定義類保存到Coredata中
- 5. 自定義文件格式無法識別設備上的
- 6. 獲取移動網頁設備類型的新方法
- 7. 存儲自定義類型的設置
- 8. 爲移動設備定義CSS樣式的最佳方法?
- 9. 如何將自定義類保存/序列化到設置文件?
- 10. 我如何保存一個自定義的NSObject類到文件?
- 11. 將文件保存到自定義文件擴展名
- 12. 將對象保存到文件。自定義方法添加/刪除對象
- 13. 最有效的保存自定義設置的方法
- 14. 自定義返回類型的方法?
- 15. 保存自定義數據類型
- 16. 將大型數據保存到文件的最快方法
- 17. 在移動設備上自定義谷歌圖片搜索
- 18. 移動設備上的共享存儲
- 19. 自定義文件類型關聯的Android上點擊文件
- 20. Django自定義保存方法
- 21. 如何創建保存文本和圖像的自定義文件類型?
- 22. 移動文檔類型定義
- 23. 將Jenkins中生成的.apk文件部署到移動設備
- 24. 自動添加自定義分類到自定義文章類型
- 25. Google Maps API v3:自定義標記無法在移動設備上點擊
- 26. 將具有NSCoding的自定義SWIFT類保存到UserDefaults
- 27. 移動設備上的StageVideo
- 28. 移動設備上的JqGrid
- 29. Django模型,覆蓋保存方法或屬性的自定義方法
- 30. C#.NET DirectShow Lib:將自定義圖形保存到文件
XML的主要問題是您無法執行「天真」寫入。您需要備份(複製,刷新,刪除,移動或僅複製,刷新和刪除副本),因爲在2-3秒的時間內,電源會死機並損壞您的文件。 – Quibblesome 2009-12-21 11:45:10