分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0018]圖1是根據(jù)本發(fā)明實(shí)施例的用于電力系統(tǒng)的文件傳送方法的流程圖;以及
[0019]圖2是根據(jù)本發(fā)明實(shí)施例的用于電力系統(tǒng)的文件傳送裝置的示意圖。
【具體實(shí)施方式】
[0020]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0021]需要說(shuō)明的是,本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0022]首先,在對(duì)本發(fā)明實(shí)施例進(jìn)行描述的過(guò)程中出現(xiàn)的部分名詞或術(shù)語(yǔ)適用于如下解釋:
[0023]雜湊值:是經(jīng)過(guò)哈希函數(shù)處理得到的結(jié)果,哈希函數(shù)是將任意長(zhǎng)的輸入數(shù)據(jù)變化成固定長(zhǎng)度的輸出數(shù)據(jù)(即上述處理得到的結(jié)果)。
[0024]哈夫曼編碼:是一種編碼方式,該方法依據(jù)字符出現(xiàn)概率來(lái)構(gòu)造異字頭的平均長(zhǎng)度最短的碼字。
[0025]根據(jù)本發(fā)明實(shí)施例,提供了一種用于電力系統(tǒng)的文件傳送方法的方法實(shí)施例,需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0026]圖1是根據(jù)本發(fā)明實(shí)施例的用于電力系統(tǒng)的文件傳送方法的流程圖,如圖1所示,該方法包括:
[0027]步驟S101,獲取第一文件的第一雜湊值,其中,第一文件為需要傳送的文件,第一文件包括多個(gè)單位字符串。
[0028]步驟S102,判斷預(yù)設(shè)數(shù)據(jù)庫(kù)中是否存在值與第一雜湊值相同的第二雜湊值,其中,預(yù)設(shè)數(shù)據(jù)庫(kù)用于保存已發(fā)送的第二文件和對(duì)應(yīng)于第二文件的第二雜湊值。
[0029]步驟S103,若預(yù)設(shè)數(shù)據(jù)庫(kù)中存在值與第一雜湊值相同的第二雜湊值,則傳送包括第一雜湊值的第三文件至目標(biāo)終端。
[0030]在電網(wǎng)的局域網(wǎng)內(nèi)有專用于存儲(chǔ)已發(fā)送的視頻、音頻等文件(即第二文件)的服務(wù)器(服務(wù)器上設(shè)置有預(yù)設(shè)數(shù)據(jù)庫(kù)),在移動(dòng)終端發(fā)送目標(biāo)視頻文件(即第一文件)時(shí),可以先通過(guò)固定的哈希算法(也即用于處理第二文件的哈希算法)對(duì)目標(biāo)視頻文件進(jìn)行處理,并將得到的第一雜湊值與服務(wù)器上的各個(gè)第二雜湊值進(jìn)行對(duì)比,若相同,就說(shuō)明目標(biāo)視頻文件為已發(fā)送過(guò)的文件,這時(shí),只需要將第一雜湊值按照一個(gè)固定的格式封裝為一個(gè)文件(即第三文件)傳輸至目標(biāo)終端,目標(biāo)終端從服務(wù)器中下載對(duì)應(yīng)于第一雜湊值的視頻即可。
[0031]步驟S104,若預(yù)設(shè)數(shù)據(jù)庫(kù)中不存在值與第一雜湊值相同的第二雜湊值,則從壓縮編碼表中分別讀取對(duì)應(yīng)于第一文件中各個(gè)單位字符串的壓縮編碼,其中,壓縮編碼表用于存儲(chǔ)壓縮元素和壓縮元素對(duì)應(yīng)的壓縮編碼。
[0032]步驟S105,傳送包括各個(gè)單位字符串對(duì)應(yīng)的壓縮編碼的第三文件至目標(biāo)終端。
[0033]即將各個(gè)壓縮編碼按照對(duì)應(yīng)的字符串在第一文件中的排列順序進(jìn)行排列后,將得到的第三文件發(fā)送至目標(biāo)終端。
[0034]通過(guò)上述實(shí)施例,通過(guò)獲取第一文件的第一雜湊值,其中,第一文件為需要傳送的文件,第一文件包括多個(gè)單位字符串;判斷預(yù)設(shè)數(shù)據(jù)庫(kù)中是否存在值與第一雜湊值相同的第二雜湊值,其中,預(yù)設(shè)數(shù)據(jù)庫(kù)用于保存已發(fā)送的第二文件和對(duì)應(yīng)于第二文件的第二雜湊值;若預(yù)設(shè)數(shù)據(jù)庫(kù)中存在值與第一雜湊值相同的第二雜湊值,則傳送包括第一雜湊值的第三文件至目標(biāo)終端;若預(yù)設(shè)數(shù)據(jù)庫(kù)中不存在值與第一雜湊值相同的第二雜湊值,則從壓縮編碼表中分別讀取對(duì)應(yīng)于第一文件中各個(gè)單位字符串的壓縮編碼,其中,壓縮編碼表用于存儲(chǔ)壓縮元素和壓縮元素對(duì)應(yīng)的壓縮編碼;傳送包括各個(gè)單位字符串對(duì)應(yīng)的壓縮編碼的第三文件至目標(biāo)終端。從而解決了電力系統(tǒng)中通過(guò)移動(dòng)終端傳送數(shù)據(jù)的成本較高且安全性較低的技術(shù)問(wèn)題,通過(guò)對(duì)原始文件進(jìn)行壓縮,減小了文件的大小并提高了文件的安全性。
[0035]在一個(gè)可選的方案中,上述的壓縮編碼表包括哈夫曼編碼表,為了提高對(duì)第一文件的壓縮比率,在從壓縮編碼表中分別讀取對(duì)應(yīng)于第一文件中各個(gè)單位字符串的壓縮編碼之前,可以創(chuàng)建用于存儲(chǔ)壓縮元素的字符串集合;依次讀取第一文件中的各個(gè)單位字符串;判斷字符串集合中是否存在值與讀取的單位字符串相同的壓縮元素;在字符串集合中不存在值與讀取的單位字符串相同的壓縮元素的情況下,將讀取的單位字符串作為一個(gè)壓縮元素存入字符串集合;基于字符串集合生成哈夫曼編碼表,其中,哈夫曼編碼表用于存儲(chǔ)壓縮元素和唯一對(duì)應(yīng)于壓縮元素的壓縮編碼。需要說(shuō)明的是,在將壓縮元素寫(xiě)入字符串集合的同時(shí)還需要記錄壓縮元素出現(xiàn)的次數(shù),然后為每一個(gè)壓縮元素指定一個(gè)壓縮編碼,為出現(xiàn)次數(shù)最多的壓縮元素匹配最短字符的壓縮編碼,并保證出現(xiàn)次數(shù)多的壓縮元素對(duì)應(yīng)的壓縮編碼的長(zhǎng)度不長(zhǎng)于出現(xiàn)次數(shù)少的壓縮元素,從而可以保證最高的壓縮比率。
[0036]在另一個(gè)可選的方案中,壓縮編碼表包括基于第二文件生成的哈夫曼編碼表,可以對(duì)所有的文件(包括第一文件和第二文件)用同一個(gè)哈夫曼編碼表覆蓋,在從壓縮編碼表中分別讀取對(duì)應(yīng)于第一文件中各個(gè)單位字符串的壓縮編碼之前,可以依次讀取第一文件中的各個(gè)單位字符串;判斷哈夫曼編碼表中是否存在值與讀取的單位字符串相同的壓縮元素;在哈夫曼編碼表中不存在值與讀取的單位字符串相同的壓縮元素的情況下,將讀取的單位字符串和基于讀取的單位字符串生成的壓縮編碼存入哈夫曼編碼表。利用該方案,可以不必為每一個(gè)單位字符串生成對(duì)應(yīng)的壓縮編碼,對(duì)于在壓縮編碼表已存在的單位字符串,可以沿用之前的壓縮編碼,對(duì)于不存在的單位字符串,需要按照固定長(zhǎng)度單獨(dú)為其生成一個(gè)壓縮編碼。在實(shí)時(shí)性要求較高的環(huán)境中,可以采用該方案,從而可以提高壓縮處理的速度。
[0037]需要說(shuō)明的是,在利用該方案進(jìn)行壓縮處理之后,可以基于第一文件和已發(fā)送的第二文件中的字符串對(duì)上述哈夫曼編碼表進(jìn)行更新,即統(tǒng)計(jì)第一文件和已發(fā)送的各個(gè)第二文件中各個(gè)單位字符串的實(shí)際長(zhǎng)度,并根據(jù)其長(zhǎng)度重新生成對(duì)應(yīng)的壓縮編碼,從而得到更新的哈夫曼編碼表。
[0038]本發(fā)明實(shí)施例中的從壓縮編碼表中分別讀取對(duì)應(yīng)于第一文件中各個(gè)單位字符串的壓縮編碼可以包括:獲取哈夫曼編碼表中值與單位字符串相同的壓縮元素的位置信息;按照位置信息讀取值與單位字符串相同的壓縮元素所對(duì)應(yīng)的壓縮編碼。壓縮元素和壓縮編碼是順序存儲(chǔ)的,而壓縮元素的長(zhǎng)度為固定值,在知道的壓縮元素的位置信息(即壓縮元素的首字符地址)之后,可以在該地址的基礎(chǔ)上加上上述固定值即可得到壓縮編碼的首字符的地址。
[0039