21 * questions.
22 */
23
24 /**
25 * @test
26 * @bug 6285124
27 * @summary Small compressed zip entries should be read in one read() operation
28 * @author Martin Buchholz
29 */
30
31 import java.io.*;
32 import java.util.zip.*;
33
34 public class ShortRead {
35
36 public static void main(String[] args) throws Exception {
37 final File zFile = new File("abc.zip");
38 try {
39 final String entryName = "abc";
40 final String data = "Data disponible";
41 final ZipOutputStream zos =
42 new ZipOutputStream(new FileOutputStream(zFile));
43 zos.putNextEntry(new ZipEntry(entryName));
44 zos.write(data.getBytes("ASCII"));
45 zos.closeEntry();
46 zos.close();
47
48 final ZipFile zipFile = new ZipFile(zFile);
49 final ZipEntry zentry = zipFile.getEntry(entryName);
50 final InputStream inputStream = zipFile.getInputStream(zentry);
51 System.out.printf("size=%d csize=%d available=%d%n",
52 zentry.getSize(),
53 zentry.getCompressedSize(),
54 inputStream.available());
55 byte[] buf = new byte[data.length()];
56 final int count = inputStream.read(buf);
57 if (! new String(buf, "ASCII").equals(data) ||
58 count != data.length())
59 throw new Exception("short read?");
60 zipFile.close();
61 }
62 finally { zFile.delete(); }
63 }
64 }
|
21 * questions.
22 */
23
24 /**
25 * @test
26 * @bug 6285124
27 * @summary Small compressed zip entries should be read in one read() operation
28 * @author Martin Buchholz
29 */
30
31 import java.io.*;
32 import java.util.zip.*;
33
34 public class ShortRead {
35
36 public static void main(String[] args) throws Exception {
37 final File zFile = new File("abc.zip");
38 try {
39 final String entryName = "abc";
40 final String data = "Data disponible";
41 try (FileOutputStream fos = new FileOutputStream(zFile);
42 ZipOutputStream zos = new ZipOutputStream(fos))
43 {
44 zos.putNextEntry(new ZipEntry(entryName));
45 zos.write(data.getBytes("ASCII"));
46 zos.closeEntry();
47 }
48
49 try (ZipFile zipFile = new ZipFile(zFile)) {
50 final ZipEntry zentry = zipFile.getEntry(entryName);
51 final InputStream inputStream = zipFile.getInputStream(zentry);
52 System.out.printf("size=%d csize=%d available=%d%n",
53 zentry.getSize(),
54 zentry.getCompressedSize(),
55 inputStream.available());
56 byte[] buf = new byte[data.length()];
57 final int count = inputStream.read(buf);
58 if (! new String(buf, "ASCII").equals(data) ||
59 count != data.length())
60 throw new Exception("short read?");
61 }
62 } finally {
63 zFile.delete();
64 }
65 }
66 }
|