1

通常、私は自分のアプリ用のファイルを保持したいので、assetsそのフォルダーからファイルを読み取ります。そのため、assets フォルダーから Excel ファイル (97-2003 のワークブック) を読み取ろうとすると、失敗しました (プロセス - 1)。/mnt/sdcard/ただし、ファイルを使用するようにプッシュしてadb.exeからそこから読み取ろうとすると、機能します(プロセス-2)。

プロセスのコード - 1 :

File inputWorkbook = new File((assetManager.open("myFile.xls")).toString());

表示される例外:

java.io.FileNotFoundException: /android.content.res.AssetManager$AssetInputStream@40cd4ce0: open failed: ENOENT (No such file or directory)

プロセスのコード - 2 :

File inputWorkbook = new File(Environment.getExternalStorageDirectory()+"/myFile.xls");

1> 誰が私に何を間違っているのか教えてもらえますか?

2> また、アセットに保持するファイルのファイル サイズに制限はありますか? もしそうなら、どこか他の場所に保管できますか?

ありがとう 。

編集:私はこれを次のように機能させました:

InputStream dbInputStream = context.getAssets().open("myFile.xls");

それでも、誰かがそのような解決策と私の2番目の質問への答えを持っているなら、私は代替の解決策を知りたいです。

4

1 に答える 1

1

片道 (assets フォルダーから読み取る):

AssetManager assetManager =   m.getInstrumentation().getContext().getResources().getAssets();
InputStream in = assetManager.open(filename);

別の方法 (/mnt/sdcard/Android/data/file から読み取る)

File file = new File(m.getInstrumentation().getContext().getExternalFilesDir(null), filename);
fis = new FileInputStream(file);
于 2013-08-06T12:46:51.030 に答える