亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

處理數(shù)據(jù)的方法和裝置與制造工藝

文檔序號:11056918閱讀:324來源:國知局
處理數(shù)據(jù)的方法和裝置與制造工藝
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種處理數(shù)據(jù)的方法和裝置。

背景技術(shù):
應(yīng)用程序開發(fā)過程中,經(jīng)常需要存儲數(shù)據(jù)到文件和讀取數(shù)據(jù),而在數(shù)據(jù)存儲和讀取的同時有下面兩個重要的方面需要考慮:第一、在存儲和讀取數(shù)據(jù)時不能阻塞界面用戶操作,不能影響用于界面交互的流暢性;第二、數(shù)據(jù)的容錯性和可升級性,不能因?yàn)閿?shù)據(jù)的讀寫異常而導(dǎo)致整個程序的崩潰,不能因?yàn)樯洗伪4娴臄?shù)據(jù)有錯或者不完整而導(dǎo)致下次啟動程序時讀入數(shù)據(jù)出錯導(dǎo)致程序啟動不起來?,F(xiàn)有技術(shù)中,采用直接文件存儲方式來進(jìn)行數(shù)據(jù)存儲。直接文件存儲就是直接把數(shù)據(jù)序列化后寫入原文件,在讀取寫入的數(shù)據(jù)時,先把數(shù)據(jù)讀入然后反序列化,得到用戶需要的數(shù)據(jù)。序列化是將對象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^程,與序列化相對的是反序列化,它將流轉(zhuǎn)換為對象。這兩個過程結(jié)合起來,可以輕松地存儲和傳輸數(shù)據(jù)。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:在數(shù)據(jù)量比較大的時候,直接寫入大塊數(shù)據(jù),磁盤IO(Input/Output,輸入/輸出)運(yùn)行比較慢,會阻塞UI(UserInterface,用戶界面)交互,寫入數(shù)據(jù)過程中程序異常退出,下次讀取數(shù)據(jù)時數(shù)據(jù)不完整,可能會導(dǎo)致程序無法啟動。

技術(shù)實(shí)現(xiàn)要素:
為了解決在數(shù)據(jù)寫入時出現(xiàn)的問題,本發(fā)明實(shí)施例提供了一種處理數(shù)據(jù)的方法和裝置。所述技術(shù)方案如下:一方面,提供了一種處理數(shù)據(jù)的方法,所述方法包括:當(dāng)終端需要在預(yù)設(shè)程序的第一文件中寫入數(shù)據(jù)時,為所述需要寫入的數(shù)據(jù)創(chuàng)建臨時文件,其中所述需要寫入的數(shù)據(jù)包括至少一個數(shù)據(jù)塊;為所述需要寫入的數(shù)據(jù)添加頭部信息,所述頭部信息包括所述需要寫入的數(shù)據(jù)的數(shù)據(jù)長度、版本信息和成功標(biāo)志位;對所述數(shù)據(jù)塊進(jìn)行序列化處理,并將所述序列化的數(shù)據(jù)塊存儲到所述臨時文件中;在存儲所述序列化的數(shù)據(jù)塊后,用所述臨時文件替換所述第一文件。所述方法還包括:當(dāng)所述終端需要讀取所述預(yù)設(shè)程序的第一文件中的數(shù)據(jù)時,從所述第一文件中獲取所述需要讀取的數(shù)據(jù)的頭部信息和所述第一文件的版本信息;根據(jù)所述需要讀取的數(shù)據(jù)的頭部信息和所述第一文件的版本信息,判斷是否能夠讀取所述需要讀取的數(shù)據(jù);如果是,則讀取所述需要讀取的數(shù)據(jù)。所述根據(jù)所述需要讀取的數(shù)據(jù)的頭部信息和所述第一文件的版本信息,判斷是否能夠繼續(xù)讀取所述需要讀取的數(shù)據(jù),包括:檢查所述頭部信息中的成功標(biāo)志位和版本信息,判斷所述成功標(biāo)志位是否是成功讀取的標(biāo)志,且所述頭部信息中的版本信息是否與所述終端獲取到的所述第一文件的版本信息一致;如果所述成功標(biāo)志位是成功讀取的標(biāo)志,且所述頭部信息中的版本信息與所述終端獲取到的所述第一文件的版本信息一致,則確定能夠讀取所述需要讀取的數(shù)據(jù)。所述方法還包括:如果所述終端判斷出不能夠讀取所述需要讀取的數(shù)據(jù),則刪除所述需要讀取的數(shù)據(jù)所在的第一文件。所述讀取所述需要讀取的數(shù)據(jù),包括:所述需要讀取的數(shù)據(jù)包括至少一個數(shù)據(jù)塊,對所述數(shù)據(jù)塊執(zhí)行反序列化處理,以獲得所述需要讀取的數(shù)據(jù)。所述方法還包括:在讀取所述需要讀取的數(shù)據(jù)之前,將所述成功標(biāo)志位修改為未成功讀取的標(biāo)志;在成功讀取所述需要讀取的數(shù)據(jù)后,將所述成功標(biāo)志位修改為成功讀取的標(biāo)志。另一方面,還提供了一種處理數(shù)據(jù)的裝置,所述裝置包括:創(chuàng)建模塊,用于當(dāng)需要在預(yù)設(shè)程序的第一文件中寫入數(shù)據(jù)時,為所述需要寫入的數(shù)據(jù)創(chuàng)建臨時文件,其中所述需要寫入的數(shù)據(jù)包括至少一個數(shù)據(jù)塊;序列化模塊,用于對所述數(shù)據(jù)塊進(jìn)行序列化處理,并將所述序列化的數(shù)據(jù)塊存儲到所述創(chuàng)建模塊創(chuàng)建的臨時文件中;替換模塊,用于在所述序列化模塊存儲所述序列化的數(shù)據(jù)塊后,用所述臨時文件替換所述第一文件;其中,所述裝置還包括:添加模塊,用于所述序列化模塊對所述數(shù)據(jù)塊進(jìn)行序列化處理之前,為所述需要寫入的數(shù)據(jù)添加頭部信息,所述頭部信息包括所述需要寫入的數(shù)據(jù)的數(shù)據(jù)長度、版本信息和成功標(biāo)志位。所述裝置還包括:獲取模塊,用于當(dāng)需要讀取所述預(yù)設(shè)程序的第一文件中的數(shù)據(jù)時,從所述第一文件中獲取所述需要讀取的數(shù)據(jù)的頭部信息和所述第一文件的版本信息;判斷模塊,用于根據(jù)所述需要讀取的數(shù)據(jù)的頭部信息和所述第一文件的版本信息,判斷是否能夠讀取所述需要讀取的數(shù)據(jù);讀取模塊,用于如果判斷模塊的判斷結(jié)果為是,則讀取所述需要讀取的數(shù)據(jù)。所述判斷模塊具體用于:檢查所述頭部信息中的成功標(biāo)志位和版本信息,判斷所述成功標(biāo)志位是否是成功讀取的標(biāo)志,且所述頭部信息中的版本信息是否與所述第一文件的版本信息一致;如果所述成功標(biāo)志位是成功讀取的標(biāo)志,且所述頭部信息中的版本信息與所述第一文件的版本信息一致,則確定能夠讀取所述需要讀取的數(shù)據(jù)。所述裝置還包括:刪除模塊,用于如果所述判斷模塊判斷出不能夠讀取所述需要讀取的數(shù)據(jù),則刪除所述需要讀取的數(shù)據(jù)所在的第一文件。所述讀取模塊具體用于:所述需要讀取的數(shù)據(jù)包括至少一個數(shù)據(jù)塊,對所述數(shù)據(jù)塊執(zhí)行反序列化處理,以獲得所述需要讀取的數(shù)據(jù)。所述裝置還包括:第一修改模塊,用于在讀取模塊讀取所述需要讀取的數(shù)據(jù)之前,將所述成功標(biāo)志位修改為未成功讀取的標(biāo)志;第二修改模塊,用于在成功讀取所述需要讀取的數(shù)據(jù)后,將所述成功標(biāo)志位修改為成功讀取的標(biāo)志。本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:采用異步寫入數(shù)據(jù)的方法,在數(shù)據(jù)寫入過程中不阻塞用戶界面操作,能夠預(yù)防數(shù)據(jù)格式錯誤或數(shù)據(jù)不完整而影響程序的使用,提高程序容錯性和穩(wěn)定性。附圖說明為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例1中提供的一種處理數(shù)據(jù)的方法的流程;圖2是本發(fā)明實(shí)施例2中提供的一種處理數(shù)據(jù)的方法的流程;圖3是本發(fā)明實(shí)施例3中提供的一種處理數(shù)據(jù)的方法的流程;圖4是本發(fā)明實(shí)施例3中提供的一種處理數(shù)據(jù)的方法的流程;圖5是本發(fā)明實(shí)施例4中提供的一種處理數(shù)據(jù)的裝置的示意圖;圖6是本發(fā)明實(shí)施例4中提供的另一種處理數(shù)據(jù)的裝置的示意圖。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例1參見圖1,本發(fā)明實(shí)施例提供了一種處理數(shù)據(jù)的方法,包括:101:當(dāng)終端需要在預(yù)設(shè)程序的第一文件中寫入數(shù)據(jù)時,為所述需要寫入的數(shù)據(jù)創(chuàng)建臨時文件,其中所述需要寫入的數(shù)據(jù)包括至少一個數(shù)據(jù)塊;102:對所述數(shù)據(jù)塊進(jìn)行序列化處理,并將所述序列化的數(shù)據(jù)塊存儲到所述臨時文件中;103:在存儲所述序列化的數(shù)據(jù)塊后,用所述臨時文件替換所述第一文件。本實(shí)施例中,所述對所述數(shù)據(jù)塊進(jìn)行序列化處理之前,還包括:為所述需要寫入的數(shù)據(jù)添加頭部信息,所述頭部信息包括所述需要寫入的數(shù)據(jù)的數(shù)據(jù)長度、版本信息和成功標(biāo)志位。進(jìn)一步地,本實(shí)施例中,所述方法還包括:當(dāng)所述終端需要讀取所述預(yù)設(shè)程序的第一文件中的數(shù)據(jù)時,從所述第一文件中獲取所述需要讀取的數(shù)據(jù)的頭部信息和所述第一文件的版本信息;根據(jù)所述需要讀取的數(shù)據(jù)的頭部信息和所述第一文件的版本信息,判斷是否能夠讀取所述需要讀取的數(shù)據(jù);如果是,則讀取所述需要讀取的數(shù)據(jù)。其中,所述根據(jù)所述需要讀取的數(shù)據(jù)的頭部信息和所述第一文件的版本信息,判斷是否能夠讀取所述需要讀取的數(shù)據(jù),包括:檢查所述頭部信息中的成功標(biāo)志位和版本信息,判斷所述成功標(biāo)志位是否是成功讀取的標(biāo)志,且所述頭部信息中的版本信息是否與所述終端獲取到的所述第一文件的版本信息一致;如果所述成功標(biāo)志位是成功讀取的標(biāo)志,且所述頭部信息中的版本信息與所述終端獲取到的第一文件的版本信息一致,則確定能夠讀取所述需要讀取的數(shù)據(jù)。本實(shí)施例中,所述方法還包括:如果所述終端判斷出不能夠讀取所述需要讀取的數(shù)據(jù),則刪除所述需要讀取的數(shù)據(jù)所在的第一文件。其中,所述讀取所述需要讀取的數(shù)據(jù),包括:所述需要讀取的數(shù)據(jù)包括至少一個數(shù)據(jù)塊,對所述數(shù)據(jù)塊執(zhí)行反序列化處理,以獲得所述需要讀取的數(shù)據(jù)。優(yōu)選地,本實(shí)施例中,所述方法還包括:在讀取所述需要讀取的數(shù)據(jù)之前,將所述成功標(biāo)志位修改為未成功讀取的標(biāo)志;在成功讀取所述需要讀取的數(shù)據(jù)后,將所述成功標(biāo)志位修改為成功讀取的標(biāo)志。本發(fā)明提供的方法實(shí)施例的有益效果是:采用異步寫入數(shù)據(jù)的方法,在數(shù)據(jù)寫入過程中不阻塞用戶界面操作,能夠預(yù)防數(shù)據(jù)格式錯誤或數(shù)據(jù)不完整而影響應(yīng)用的使用,提高程序容錯性和穩(wěn)定性。實(shí)施例2參見圖2,本發(fā)明實(shí)施例提供了一種處理數(shù)據(jù)的方法,為了在讀寫文件不阻塞UI線程,使用Symbian平臺RFile的異步讀寫接口,voidRead(TIntaPos,TDes8&aDes,TIntaLength,TRequestStatus&aStatus)const;voidWrite(constTDesC8&aDes,TRequestStatus&aStatus);和活動對象CActive,每次讀寫一塊數(shù)據(jù),并盡量減少讀寫文件次數(shù),該方法包括:201:終端獲取需要在本地預(yù)設(shè)程序的第一文件中寫入的數(shù)據(jù)。本實(shí)施例中,終端包括:手機(jī)、手持設(shè)備等,對此本實(shí)施例不做具體限定。預(yù)設(shè)程序指需要寫入數(shù)據(jù)的程序,并可以提供給用戶讀取數(shù)據(jù)的程序,如開心網(wǎng)、QQ等。第一文件是指預(yù)設(shè)程序指定的存儲下載信息的文件。本實(shí)施例中,終端啟動預(yù)設(shè)程序后,在該程序的運(yùn)行過程中,需要在互聯(lián)網(wǎng)上下載大數(shù)量的數(shù)據(jù),一般超過10M,終端需要將獲取到的數(shù)據(jù)存儲到該程序中。如,用戶登錄某一網(wǎng)站,并在該網(wǎng)站上預(yù)訂了關(guān)于某個事件的消息,如果終端檢測到有關(guān)于該事件的消息,則會將該消息下載到終端上,再將該消息進(jìn)行異步存儲。其中,終端上需要寫入的數(shù)據(jù)一般比較大,包括至少一個數(shù)據(jù)塊。202:終端為需要寫入的數(shù)據(jù)創(chuàng)建臨時文件。本實(shí)施例中,為了保證寫入數(shù)據(jù)異常后不會影響舊...
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1