ファイルの末尾に 1024 バイトを使用して、ファイルに関するメタ情報を書き込もうとしています。
var buffer = new Buffer(1024);
buffer.write(JSON.stringify(data));
文字列がバッファにコピーされたら、次のようにファイルを保存します-
fs.write(fd, buffer, 0, buffer.length, fileSize,callback);
ファイルを読み取るときに、データ変数に保存されているメタ情報を抽出したいだけです。私はこれをこのようにやっています -
buffer = new Buffer(1024);
fs.read(fd, buffer, 0, buffer.length, fileSize, function(err, count, buffer) {
console.log(buffer.toJSON())
}
残念ながら、上記の手順は json データを取得しますが、その周りにガベージ データがいくつかあります。したがって、buffer.toJSON() メソッドは失敗します。そのような問題に対する私のアプローチは何ですか?
編集: バッファが完全にいっぱいになりません。
現在の解決策: 1. Buffer を null で埋めます。2. JSON5 を使用して json コンテンツを解析します。
最終的な解決策 1. バッファーを ' ' で埋める 2. JSON 解析を使用して Json コンテンツを解析する