KryoCocoa

什么是Kryo

Kryo 是一個(gè)快速高效的Java對(duì)象圖形序列化框架,主要特點(diǎn)是性能震蒋、高效和易用茸塞。該項(xiàng)目用來序列化對(duì)象到文件、數(shù)據(jù)庫或者網(wǎng)絡(luò)查剖。

http://code.google.com/p/kryo

Kryo同其他序列化框架的對(duì)比(Java比較流行的序列化框架)

Kryo钾虐, 優(yōu)點(diǎn):速度快,序列化后體積兴褡效扫;缺點(diǎn):跨語言支持較復(fù)雜

Hessian,優(yōu)點(diǎn):默認(rèn)支持跨語言直砂;缺點(diǎn):較慢

Protostuff 菌仁,優(yōu)點(diǎn):速度快,基于protobuf静暂;缺點(diǎn):需靜態(tài)編譯

什么是KryoCocoa

其實(shí)KryoCocoa就是Java中Kryo序列化框架的Objective-C版济丘,是為了兼容Kryo和基本的Java數(shù)據(jù)類型的。

這里是KryoCocoa的地址:https://github.com/Feuerwerk/kryococoa

基本使用

一籍嘹、將對(duì)象序列化后寫入某個(gè)文件中

假如有以下實(shí)體類:

@interfaceClassA:NSObject@property(assign,nonatomic) SInt32 uid;@property(copy,nonatomic)NSString*name;@end

將該實(shí)體類序列化后寫入到某個(gè)路徑下的某個(gè)文件

ClassA *a = [[ClassA alloc] init];

a.uid=1;

a.name=@"lisi";NSOutputStream*outputStream = [NSOutputStreamoutputStreamToFileAtPath:filePath append:NO];

KryoOutput *output = [[KryoOutput alloc] initWithStream:outputStream];

[k writeObject:a to:output];

[output close];

二闪盔、讀取某個(gè)文件反序列化成一個(gè)對(duì)象

NSInputStream*inputStream = [NSInputStreaminputStreamWithFileAtPath:filePath];

KryoInput *input = [[KryoInput alloc] initWithInput:inputStream];

ClassA *a = [k readObject:input ofClass:[ClassA class]];

[input close];NSLog(@"%d %@", a.uid,a.name);

序列化對(duì)象后通過Socket與Java后臺(tái)交互

假設(shè)有一個(gè)這樣的java實(shí)體類

packagecom.test.web.socket.modules.user.svo;publicclassTestSVO{privateLong uid;privateInteger status;publicLonggetUid(){returnuid;

}publicvoidsetUid(Long uid){this.uid = uid;

}publicIntegergetStatus(){returnstatus;

}publicvoidsetStatus(Integer status){this.status = status;

}

}

我們?cè)赬code中應(yīng)該這樣定義

#import#import"SerializationAnnotation.h"#import"JInteger.h"#import"JLong.h"@interfaceTestSVO:NSObject// 更多OC對(duì)應(yīng)java類型可在git上面查到,不一一列舉了@property(strong,nonatomic) JLong *uid;@property(strong,nonatomic) JInteger *status;@end

#import"TestSVO.h"@implementationTestSVO+ (NSString*)serializingAlias

{//這里返回的java中的完整報(bào)名+類名辱士,否則會(huì)出問題return@"com.test.web.socket.modules.user.svo.TestSVO";

}@end

假設(shè)我們要將上面的對(duì)象通過socket發(fā)送給服務(wù)器

Kryo *k = [Kryo new];// 創(chuàng)建一個(gè)內(nèi)存輸出流 用于輸出Kryo序列化后的東西NSOutputStream*outputStream = [[NSOutputStreamalloc] initToMemory];// KryoOutput這個(gè)類實(shí)際上就是NSOutputStream的子類KryoOutput *output = [[KryoOutput alloc] initWithStream:outputStream];

[k writeObject:message to:output];// toData獲取到NSDataNSData*contents = output.toData;intlen = (int)contents.length;// 發(fā)送數(shù)據(jù)NSData*lengthData = [NSDatadataWithBytes:&len length:sizeof(len)];

[self.socketwriteData:[selfdescBytesWithNSData:lengthData] withTimeout:WRITE_TIME_OUT tag:0];

[self.socketwriteData:contents withTimeout:WRITE_TIME_OUT tag:0];

[output close];

這樣子,Kryo的基本使用就告一段落了听绳。

轉(zhuǎn)載自:http://www.zhiyingme.com/a/xinwenzixun/mingjiaguandian/60.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末颂碘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌头岔,老刑警劉巖塔拳,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異峡竣,居然都是意外死亡靠抑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門适掰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颂碧,“玉大人,你說我怎么就攤上這事类浪≡爻牵” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵费就,是天一觀的道長诉瓦。 經(jīng)常有香客問我,道長力细,這世上最難降的妖魔是什么睬澡? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮眠蚂,結(jié)果婚禮上猴贰,老公的妹妹穿的比我還像新娘。我一直安慰自己河狐,他們只是感情好米绕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著馋艺,像睡著了一般栅干。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捐祠,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天碱鳞,我揣著相機(jī)與錄音,去河邊找鬼踱蛀。 笑死窿给,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的率拒。 我是一名探鬼主播崩泡,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼猬膨!你這毒婦竟也來了角撞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谒所,沒想到半個(gè)月后热康,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡劣领,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年姐军,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尖淘。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奕锌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出德澈,到底是詐尸還是另有隱情歇攻,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布梆造,位于F島的核電站缴守,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏镇辉。R本人自食惡果不足惜屡穗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望忽肛。 院中可真熱鬧村砂,春花似錦、人聲如沸屹逛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽罕模。三九已至评腺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淑掌,已是汗流浹背蒿讥。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抛腕,地道東北人芋绸。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像担敌,于是被迫代替她去往敵國和親摔敛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容