質問編集履歴

3

コードを見やすくしました。

2017/12/08 14:16

投稿

shigure2
shigure2

スコア16

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ZipOutputStreamはjava.util.zip以下を使用しています。
6
6
 
7
-
7
+ ```Java
8
8
 
9
9
  // HTTPヘッダの設定後
10
10
 
@@ -18,25 +18,25 @@
18
18
 
19
19
  for(取得したファイルのぶんだけループ){
20
20
 
21
- zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名));
21
+ zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名));
22
22
 
23
23
 
24
24
 
25
- try(InputStream is = 取得したファイル) {
25
+ try(InputStream is = 取得したファイル) {
26
26
 
27
- byte[] buffer = new byte[1024];
27
+ byte[] buffer = new byte[1024];
28
28
 
29
- int readLength = 0;
29
+ int readLength = 0;
30
30
 
31
- while((readLength = is.read(buffer)) != -1) {
31
+ while((readLength = is.read(buffer)) != -1) {
32
32
 
33
- zos.write(buffer, 0, readLength);
33
+ zos.write(buffer, 0, readLength);
34
34
 
35
- }
35
+ }
36
36
 
37
- }
37
+ }
38
38
 
39
- zos.closeEntry(); // 数回繰り返しているうちに、ここでzosをcloseしているのか、画面に保存ダイアログが表示される
39
+ zos.closeEntry(); // 数回繰り返しているうちに、ここでzosをcloseしているのか、画面に保存ダイアログが表示される
40
40
 
41
41
  }
42
42
 
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
 
47
-
47
+ ```
48
48
 
49
49
 
50
50
 

2

2017/12/08 14:16

投稿

shigure2
shigure2

スコア16

test CHANGED
@@ -1 +1 @@
1
- ZIPを作りダウンロードしたいが、closeEntryで保存ダイアログが表示されてしまうことがある(closeしている?)
1
+ ZIPを作りダウンロードしたいが、ZIPエントリを閉じると同時に保存ダイアログが表示されてしまう(closeしている?)
test CHANGED
@@ -18,21 +18,21 @@
18
18
 
19
19
  for(取得したファイルのぶんだけループ){
20
20
 
21
- zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名);
21
+ zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名));
22
22
 
23
23
 
24
24
 
25
25
  try(InputStream is = 取得したファイル) {
26
26
 
27
- byte[] buffer = new byte[1024];
27
+ byte[] buffer = new byte[1024];
28
28
 
29
- int readLength = 0;
29
+ int readLength = 0;
30
30
 
31
- while((readLength = is.read(buffer)) != -1) {
31
+ while((readLength = is.read(buffer)) != -1) {
32
32
 
33
- zos.write(buffer, 0, readLength);
33
+ zos.write(buffer, 0, readLength);
34
34
 
35
- }
35
+ }
36
36
 
37
37
  }
38
38
 
@@ -46,4 +46,14 @@
46
46
 
47
47
 
48
48
 
49
+
50
+
51
+ zos.closeEntry();を記述しなかった場合、zos.putNextEntryで同様の事象が発生します。
52
+
53
+
54
+
55
+ ファイルが2個くらいなら発生しないのですが、4個くらいから確実に発生しています。
56
+
57
+
58
+
49
59
  見づらくてすみませんが、何か分かる方教えてくださいますと幸いです。

1

2017/12/08 08:39

投稿

shigure2
shigure2

スコア16

test CHANGED
@@ -1 +1 @@
1
- ZIPを作りダウンロードしたいが、closeEntryでcloseしてしまう
1
+ ZIPを作りダウンロードしたいが、closeEntryで保存ダイアログが表示されてしまうことがある(closeしている?)
test CHANGED
@@ -1,8 +1,8 @@
1
- ZIPを作成し、保存ダイアログを出したいですが、作成中のcloseEntryを何回か呼び出すうちに、ZipOutputStreamがcloseされてしまい困っています。
1
+ ZIPを作成し、保存ダイアログを出したいですが、作成中のcloseEntryを何回か呼び出すうちに、ZipOutputStreamがcloseされているのか途中で保存ダイアログが出てしまってて、困っています。
2
2
 
3
3
 
4
4
 
5
- java.util.zip以下のZipOutputStreamを使用しています。
5
+ ZipOutputStreamはjava.util.zip以下を使用しています。
6
6
 
7
7
 
8
8
 
@@ -16,9 +16,9 @@
16
16
 
17
17
 
18
18
 
19
- for(){
19
+ for(取得したファイルのぶんだけループ){
20
20
 
21
- zos.putNextEntry(new ZipEntry("test/test.csv");
21
+ zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名);
22
22
 
23
23
 
24
24
 
@@ -36,11 +36,9 @@
36
36
 
37
37
  }
38
38
 
39
- zos.closeEntry(); // 繰り返しているうちに、ここでzosをcloseしているのか、画面に保存ダイアログが表示される
39
+ zos.closeEntry(); // 数回繰り返しているうちに、ここでzosをcloseしているのか、画面に保存ダイアログが表示される
40
40
 
41
41
  }
42
-
43
-
44
42
 
45
43
  zos.close();
46
44