回答編集履歴

2

本文一部修正

2020/08/14 15:30

投稿

keicha_hrs
keicha_hrs

スコア6768

test CHANGED
@@ -1,4 +1,4 @@
1
- 先にコメントを書きましたが、assetsフォルダーを出力先とすることはできません。その代わりに、openFileOutput()を用いてアプリケーション用の領域にファイルを書き出す方法に変更するように修正してみました。このメソッドを用いると、`/data/data/<パッケージ名>/files/`の下にファイルが書き出されます。
1
+ 先にコメントを書きましたが、assetsフォルダーを出力先とすることはできません。その代わりに、~~openFileOutput()を用いてアプリケーション用の領域に~~getExternalFilesDir()を用いて内部ストレージのパッケージ専用ォルダーにファイルを書き出す方法に変更するように修正してみました。このメソッドを用いると、~~`/data/data/<パッケージ名>/files/`~~`<内部ストレージ>/Android/<パッケージ名>/files/`の下にファイルが書き出されます。
2
2
 
3
3
 
4
4
 

1

コード修正

2020/08/14 15:29

投稿

keicha_hrs
keicha_hrs

スコア6768

test CHANGED
@@ -34,6 +34,10 @@
34
34
 
35
35
  ) {
36
36
 
37
+ File path = getExternalFilesDir(null); // ☆☆☆追加☆☆☆
38
+
39
+
40
+
37
41
  ZipEntry zipentry;
38
42
 
39
43
  // zipの中のファイルがあるだけ繰り返す
@@ -42,9 +46,9 @@
42
46
 
43
47
  while ((zipentry = zis.getNextEntry()) != null) {
44
48
 
45
- try (OutputStream os = openFileOutput(zipentry.getName(), MODE_PRIVATE); // 出力先
49
+ try (FileOutputStream fos = new FileOutputStream(path + "/" + zipentry.getName()); // ☆☆☆修正☆☆☆
46
50
 
47
- BufferedOutputStream bos = new BufferedOutputStream(os);
51
+ BufferedOutputStream bos = new BufferedOutputStream(fos); // os→fosに修正
48
52
 
49
53
  ) {
50
54