Java シリアライズ可能なオブジェクトがあり、そのオブジェクトをファイルに読み書きしたい。ただし、Google アプリ エンジンは fileoutputstream と objectoutputstream をサポートしていないため、シリアル化可能なオブジェクトをバイト配列に変換してファイルに書き込みます。
$FileWriteChannel writeChannel = fileService.openWriteChannel(
writableFile, lockForWrite);
$writeChannel.write(ByteBuffer.wrap(bytearray));
$writeChannel.closeFinally();
次に、ファイルを読み取ります。
AppEngineFile readableFile = new AppEngineFile(filename);
FileReadChannel readChannel = fileService.openReadChannel(readableFile, lockForRead);
BufferedReader reader = new BufferedReader(Channels.newReader(readChannel, "UTF-8"));
String line = reader.toString();
ログを見ると UTF-8 のエラーが表示されました
エラーログ:
cloud.spam.filter.server.SerializationObject file_io: An error message: invalid stream header: 5B4240312012/07/06 08:00:10
ありがとうございました