2016-05-18 11 views
0

シリアライゼーションとデシリアライズを理解しようとしていますが、疑問が残っています。ディスクへのファイルの書き込みとはどのような違いがありますか。私は、ディスク上のいくつかのデータを格納したり、ネットワークを介してそれを送信したい場合は、私は、これはどちらかに応じて、テキストまたはバイナリ形式のファイル名で、ディスク上のデータを格納しますシリアライゼーションとファイル書き込み

open(filename), write(filename) and close(filename)? 

を使用してデータを書き込むことはできませんモードを選択します。私はこのファイルをネットワーク経由で送ることができます。

これはシリアル化とどのように違いますか? これはプロトコルバッファとどう違うのですか?

私を助けてくださいと他の人が一度、wikipediaからすべて

答えて

1

のためにダウンし、この概念を爪:コンピュータサイエンスの

を、データ記憶装置の文脈では、シリアル化データ構造を変換するプロセスですか、 (例えば、ファイルまたはメモリバッファ内に格納することができ、またはネットワーク接続リンクを介して送信することができる)フォーマットに変換し、後で同じまたは別のコンピュータ環境で再構成することができる。

したがって、ファイルの保存方法、送信方法などは重要ではありません。重要なのは、ファイルを再構築(デシリアライズ)できることです。元のオブジェクトを過渡状態から削除します。

インターネットでLego Millenium Falconを購入したとします。これは素晴らしいオブジェクトですが、作成したばかりのものに送ることはできません。だからレゴで彼らはそれを解体し、それを特別なボックスに入れます(シリアライゼーション)。ボックスの形状は、送信するチャネルによって異なります。たとえば、彼らが手であなたにそれを持って来る場合、彼らはハンドバッグを使用します。彼らは特急宅配便を使用している場合は、使用される特定のエクスプレスクーリエ(JSON、XML、YAML ...)と互換性のあるボックスを使用します。一週間後に箱を開け、ミレニアム・ファルコンを幸せに建設します(非直列化)。数週間後、あなたはファルコンをあなたのクローゼットに保管する必要がありますが、それは棚のためには大きすぎるので分解して、棚に収まる箱の中に置いてください(ファイル?)。しばらくすると、それを取り戻して再構築します。 あなたが望むたびにオブジェクトを分解/パックアンパック/構築することができます。 コンピュータサイエンスのように、あなたは箱を保管/発送するためにいくつかのメディアを使用することができます。あなたはそれを発送することができます。それを持ってきて、将来、あなたはそれをテレポートします。

プロトコルバッファについては、送信しなければならないオブジェクトに適応できる特別なボックスと考えることができます。同じ言語を使用していなくても、複数の人がパック/アンパックすることができます。

+0

ありがとうございました。私はその部分を理解しています。私はこのようなプロトコルのバッファのためのより多くの名前を入れている点は何か不思議だった。任意のアイデア – user2065276

+0

例を作ろうとしましたが、少し物事を明確にすることができれば幸いです。 – mauros

+0

あまりにも良い例 – user2065276

関連する問題