###前提・実現したいこと
androidでgoogle driveからdataをdownloadして、端末のdatabaseにデータ復元しています。
この方法が正しいのか分かりませんが、google drive api のinputstreamを取得して、一ファイルごと読み込んでdatabaseに保存後、また次のファイルと小分けにして保存しています。それをwhileでまわしています。そうする理由は、一度にまとめて読み込むと、out of memoryになると思ったからです。問題は、数ファイルは読み込めるのですが、途中からinputstreamにアクセスするとioexception errorが生じることです。どうも、読み込んだ後、データ保存を挟むと、このエラーがでるっぽいです。現在は、これをcatchすると、もう一度、inputstreamを取り出して、途中のデータまでskip後、読み込み再開しています。これでできなくはないですが、遅いです。スムーズにいかせる方法(inputstreamが途中からアクセスできなくならない方法)はないでしょうか?
また、androidのデバッグでは、このエラーが出ません。release apkで出てしまいます。この辺もヒントになりませんでしょうか?
###発生している問題・エラーメッセージ
ioexception
java.io.IOException: read failed: EBADF (Bad file number)
at libcore.io.IoBridge.read(IoBridge.java:432)
at java.io.FileInputStream.read(FileInputStream.java:179)
....
あなたの回答
tips
プレビュー