Статьи

Суть Java на zip и распаковать

Сжатие является одним из основных действий, которые могут быть выполнены в нашем коде, когда речь идет о записи файлов. Таким образом, я нахожу простой фрагмент кода java на zip и unzip необходимом и должен быть легко доступен.

Эта суть находится в простой Java и хранит два файла в zip. После этого созданный почтовый индекс открывается, и его содержимое оценивается.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import org.apache.commons.io.IOUtils;
import org.junit.Assert;
import org.junit.Test;
 
import java.io.*;
import java.nio.file.Files;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
 
/**
 * Created by gkatzioura on 4/12/17.
 */
public class ArhivingTest {
 
    private static final String TEXT_ENTRY_1 = "text1.txt";
    private static final String TEXT_ENTRY_2 = "text2.txt";
 
    @Test
    public void zipAndUnzip() throws IOException {
 
        String text1 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do ";
        String text2 = "eiusmod tempor incididunt ut labore et dolore magna aliqua. ";
 
        File tempZip = File.createTempFile("temp",".zip");
 
        try(OutputStream outputStream = new FileOutputStream(tempZip);
            ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream)) {
 
            zipOutputStream.putNextEntry(new ZipEntry(TEXT_ENTRY_1));
            zipOutputStream.write(text1.getBytes());
            zipOutputStream.closeEntry();
 
            zipOutputStream.putNextEntry(new ZipEntry(TEXT_ENTRY_2));
            zipOutputStream.write(text2.getBytes());
            zipOutputStream.closeEntry();
        }
 
        try(InputStream inputStream = new FileInputStream(tempZip);
            ZipInputStream zipInputStream = new ZipInputStream(inputStream)) {
 
            ZipEntry entry = null;
 
            while ((entry=zipInputStream.getNextEntry())!=null) {
                if(entry.getName().equals(TEXT_ENTRY_1)) {
                    Assert.assertEquals(text1, IOUtils.toString(zipInputStream));
                }
                if(entry.getName().equals(TEXT_ENTRY_2)) {
                    Assert.assertEquals(text2,IOUtils.toString(zipInputStream));
                }
                zipInputStream.closeEntry();
            }
        } finally {
            Files.deleteIfExists(tempZip.toPath());
        }
    }
     
}
Ссылка: Суть Java в zip и распаковать от нашего партнера JCG Эммануила Gkatziouras в блоге gkatzioura .