SQLサーバーを使用してデータを保存するか、xmlファイルを使用することで甘やかされてきました。
xml や CSV 以外のフラット ファイルにデータを格納するための一般的な手法は何ですか。
ファイルを開くと、データがすべてごちゃごちゃになっていることがよくあります。これは、正しくエンコードされていることを意味しますか?
どこかで読める一般的なテクニックはありますか?
SQLサーバーを使用してデータを保存するか、xmlファイルを使用することで甘やかされてきました。
xml や CSV 以外のフラット ファイルにデータを格納するための一般的な手法は何ですか。
ファイルを開くと、データがすべてごちゃごちゃになっていることがよくあります。これは、正しくエンコードされていることを意味しますか?
どこかで読める一般的なテクニックはありますか?
要件によって異なります。人間が読める形式にする必要がある場合は、YAML、XML、および CVS が適しています。
しかし、パフォーマンスが必要な場合やバイナリ値 (8 バイト double など) を格納する必要がある場合は、個人的には Java の優れた DataOutputStream と DataInputStream を使用して独自のファイル形式を作成します。ただし、独自のフォーマットを作成するときは注意してください。一般に、それを世界と共有したくないか、セキュリティと拡張性に注意する必要があります。常にデータの整合性を気にする必要があり、場合によってはいくつかの crc チェックサムを追加する必要があります。
カスタムバイナリフラットファイルを正しく取得するのは難しいので、本当に必要なのか確認して助けを求めてください!
YAML は、すべてのプログラミング言語の人間に優しいデータ シリアライゼーション標準です。
例(再び、サイトから):
以下は、YAML(tm) で表現された請求書の例です。構造はインデント (1 つ以上のスペース) で示されます。シーケンス項目はダッシュで示され、マップ内のキーと値のペアはコロンで区切られます。
invoice: 34843
date : 2001-01-23
bill-to: &id001
given : Chris
family : Dumars
address:
lines: |
458 Walkman Dr.
Suite #292
city : Royal Oak
state : MI
postal : 48046
ship-to: *id001
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
tax : 251.42
total: 4443.52
comments: >
Late afternoon is best.
Backup contact is Nancy
Billsmer @ 338-4338.
ファイルがすべて「ごちゃごちゃ」しているからといって、それがエンコードされているわけではありません。テキスト形式ではなく、バイナリ形式で保存されていることを意味するだけです。
バイナリ形式で保存する場合は、データをそのままプログラム メモリに書き込むだけです。たとえば、整数を書き込むには、整数の 4 バイトを直接書き込み、テキストに変換しません。これには、スペースを節約できるという利点があります。
このようなファイルをメモ帳で開くと、ランダムな文字しか表示されません。
完全を期すために、古風な.ini formatについて言及しますが、XML または YAML でフラット ファイル データを記述しないと失敗することは想像できません。