Cuplikan KivaKit #3

Jan 02 2023
Lebih lanjut tentang KivaKit https://state-of-the-art.org/https://www.
Kode

package com.telenav.kivakit.snippets;

import static com.telenav.kivakit.core.collections.list.ObjectList.list;
import static com.telenav.kivakit.core.collections.list.StringList.stringList;
import static com.telenav.kivakit.filesystem.File.file;
import static com.telenav.kivakit.filesystem.Folders.kivakitTemporaryFolder;
import static com.telenav.kivakit.resource.FileName.fileName;
import static com.telenav.kivakit.resource.compression.archive.ZipArchive.AccessMode.READ;
import static com.telenav.kivakit.resource.compression.archive.ZipArchive.AccessMode.WRITE;
import static com.telenav.kivakit.resource.compression.archive.ZipArchive.zipArchive;

public class Snippet3 extends BaseSnippet
{
    public static void main(String[] args)
    {
        new Snippet3().run();
    }

    @Override
    protected Object onSnippet()
    {
        var file = kivakitTemporaryFolder().file("output.zip");
        var result = stringList();

        try (var zip = zipArchive(this, file, WRITE))
        {
            zip.add(list(
                file("kivakit/pom.xml"),
                file("kivakit/README.md"),
                file("kivakit/.gitignore")
            ));
        }

        try (var zip = zipArchive(this, file, READ))
        {
            for (var entry : zip)
            {
                result.add(entry.toString());

                if (entry.fileName().equals(fileName(".gitignore")))
                {
                    result.add(entry.readText().trim());
                }
            }
        }

        return result.join("\n");
    }
}

      
                
Output
[ZipEntry createdAt = 2023.01.01_01.51PM_MT, fileName = .gitignore, lastModified = 2023.01.01_01.51PM_MT, sizeInBytes = 382 bytes] *.orig **/target/ **/tools/downloads/** tools/applications/** setup.properties **/build.properties **/.settings/ **/.classpath **/.project **/.idea/ **/*.iml **/*.eml **/*.ipr **/*.iws **/.includepath **/*.log **/*.ids **/.DS_Store **/*.class **/*.hprof **/dependency-reduced-pom.xml **/venv/ /venv/** /kivakit-internal/tests/kivakit-kyro-serialization-tests/nbproject/ nbproject/ [ZipEntry createdAt = 2023.01.01_01.51PM_MT, fileName = README.md, lastModified = 2023.01.01_01.51PM_MT, sizeInBytes = 19.3K] [ZipEntry createdAt = 2023.01.01_01.51PM_MT, fileName = pom.xml, lastModified = 2023.01.01_01.51PM_MT, sizeInBytes = 24.7K]

Lebih lanjut tentang KivaKit

https://state-of-the-art.org/
https://www.kivakit.org/

Artikel Terkait

Cuplikan KivaKit #1
Cuplikan KivaKit #2

Enam Alasan Mengapa Sebagian Besar Java yang Anda Lihat Bukan Java Asli
Mengapa Host Bukan String dan Port Bukan Integer
Integer Bukan Hitungan
Semuanya Membagi dan Menaklukkan