KivaKit Extrait #3

Jan 02 2023
En savoir plus sur 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]

En savoir plus sur KivaKit

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

Articles Liés

Extrait de KivaKit #1
Extrait de KivaKit #2

Six raisons pour lesquelles la plupart des Java que vous avez vus ne sont pas du vrai Java
Pourquoi un hôte n'est pas une chaîne et un port n'est pas un entier
Un entier n'est pas un compte
Tout est diviser pour régner