[發明專利]處理數據的方法和裝置有效
| 申請號: | 201110382450.8 | 申請日: | 2011-11-25 |
| 公開(公告)號: | CN103136234B | 公開(公告)日: | 2017-05-24 |
| 發明(設計)人: | 李飛云 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司11138 | 代理人: | 王希剛 |
| 地址: | 518000 廣東省深*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 處理 數據 方法 裝置 | ||
技術領域
本發明涉及通信技術領域,特別涉及一種處理數據的方法和裝置。
背景技術
應用程序開發過程中,經常需要存儲數據到文件和讀取數據,而在數據存儲和讀取的同時有下面兩個重要的方面需要考慮:第一、在存儲和讀取數據時不能阻塞界面用戶操作,不能影響用于界面交互的流暢性;第二、數據的容錯性和可升級性,不能因為數據的讀寫異常而導致整個程序的崩潰,不能因為上次保存的數據有錯或者不完整而導致下次啟動程序時讀入數據出錯導致程序啟動不起來。
現有技術中,采用直接文件存儲方式來進行數據存儲。直接文件存儲就是直接把數據序列化后寫入原文件,在讀取寫入的數據時,先把數據讀入然后反序列化,得到用戶需要的數據。序列化是將對象狀態轉換為可保持或傳輸的格式的過程,與序列化相對的是反序列化,它將流轉換為對象。這兩個過程結合起來,可以輕松地存儲和傳輸數據。
在實現本發明的過程中,發明人發現現有技術至少存在以下問題:在數據量比較大的時候,直接寫入大塊數據,磁盤IO(Input/Output,輸入/輸出)運行比較慢,會阻塞UI(User Interface,用戶界面)交互,寫入數據過程中程序異常退出,下次讀取數據時數據不完整,可能會導致程序無法啟動。
發明內容
為了解決在數據寫入時出現的問題,本發明實施例提供了一種處理數據的方法和裝置。所述技術方案如下:
一方面,提供了一種處理數據的方法,所述方法包括:
當終端需要在預設程序的第一文件中寫入數據時,為所述需要寫入的數據創建臨時文件,其中所述需要寫入的數據包括至少一個數據塊;
為所述需要寫入的數據添加頭部信息,所述頭部信息包括所述需要寫入的數據的數據長度、版本信息和成功標志位;
對所述數據塊進行序列化處理,并將所述序列化的數據塊存儲到所述臨時文件中;
在存儲所述序列化的數據塊后,用所述臨時文件替換所述第一文件。
所述方法還包括:
當所述終端需要讀取所述預設程序的第一文件中的數據時,從所述第一文件中獲取所述需要讀取的數據的頭部信息和所述第一文件的版本信息;
根據所述需要讀取的數據的頭部信息和所述第一文件的版本信息,判斷是否能夠讀取所述需要讀取的數據;
如果是,則讀取所述需要讀取的數據。
所述根據所述需要讀取的數據的頭部信息和所述第一文件的版本信息,判斷是否能夠繼續讀取所述需要讀取的數據,包括:
檢查所述頭部信息中的成功標志位和版本信息,判斷所述成功標志位是否是成功讀取的標志,且所述頭部信息中的版本信息是否與所述終端獲取到的所述第一文件的版本信息一致;
如果所述成功標志位是成功讀取的標志,且所述頭部信息中的版本信息與所述終端獲取到的所述第一文件的版本信息一致,則確定能夠讀取所述需要讀取的數據。
所述方法還包括:
如果所述終端判斷出不能夠讀取所述需要讀取的數據,則刪除所述需要讀取的數據所在的第一文件。
所述讀取所述需要讀取的數據,包括:
所述需要讀取的數據包括至少一個數據塊,對所述數據塊執行反序列化處理,以獲得所述需要讀取的數據。
所述方法還包括:
在讀取所述需要讀取的數據之前,將所述成功標志位修改為未成功讀取的標志;
在成功讀取所述需要讀取的數據后,將所述成功標志位修改為成功讀取的標志。
另一方面,還提供了一種處理數據的裝置,所述裝置包括:
創建模塊,用于當需要在預設程序的第一文件中寫入數據時,為所述需要寫入的數據創建臨時文件,其中所述需要寫入的數據包括至少一個數據塊;
序列化模塊,用于對所述數據塊進行序列化處理,并將所述序列化的數據塊存儲到所述創建模塊創建的臨時文件中;
替換模塊,用于在所述序列化模塊存儲所述序列化的數據塊后,用所述臨時文件替換所述第一文件;
其中,所述裝置還包括:
添加模塊,用于所述序列化模塊對所述數據塊進行序列化處理之前,為所述需要寫入的數據添加頭部信息,所述頭部信息包括所述需要寫入的數據的數據長度、版本信息和成功標志位。
所述裝置還包括:
獲取模塊,用于當需要讀取所述預設程序的第一文件中的數據時,從所述第一文件中獲取所述需要讀取的數據的頭部信息和所述第一文件的版本信息;
判斷模塊,用于根據所述需要讀取的數據的頭部信息和所述第一文件的版本信息,判斷是否能夠讀取所述需要讀取的數據;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110382450.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:多功能疲勞駕駛提醒裝置組合
- 下一篇:一種大堂式自助終端機
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





