KivaKit-Schnipsel Nr. 3

Jan 02 2023
Mehr über KivaKit https://state-of-the-art.org/https://www.
Code

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]

Mehr über KivaKit

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

Zum Thema passende Artikel

KivaKit-Schnipsel Nr. 1
KivaKit-Schnipsel Nr. 2

Sechs Gründe, warum das meiste Java, das Sie gesehen haben, kein echtes Java
ist Warum ein Host kein String und ein Port keine ganze
Zahl ist eine ganze Zahl keine Zahl ist
Alles ist Teile und Herrsche