「Java」try-with-resources文のZipFileクラスとBufferedReaderクラスのサンプル

書式
try (ZipFile zf = new ZipFile(zipFileName);
BufferedWriter writer = java.nio.file.Files.newBufferedWriter(outputFilePath, charset)) {
//処理コード
}
説明
ZipファイルzipFileNameにパッケージ化されているファイルの名前を取得し、これらのファイル名を含むテキスト・ファイルを作成します。

Javaコード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.example;
import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.io.BufferedWriter;
public class ZipEntryDemo {
public static void writeToFileZipFileContents(String zipFileName, String outputFileName)
throws java.io.IOException {
java.nio.charset.Charset charset = java.nio.charset.StandardCharsets.UTF_8;
java.nio.file.Path outputFilePath = java.nio.file.Paths.get(outputFileName);
// try-with-resources文でzipファイルを開く、出力ファイルを作成する
try (ZipFile zf = new ZipFile(zipFileName);
BufferedWriter writer = java.nio.file.Files.newBufferedWriter(outputFilePath, charset)) {
// Enumerationでzipファイルの中身要素を列挙する
int cnt = 0;
for (Enumeration<? extends ZipEntry> entries = zf.entries(); entries.hasMoreElements();) {
cnt++;
// 圧縮ファイル名を取得し、出力ファイルに書き込む
String newLine = System.getProperty("line.separator");
String zipEntryName = ((java.util.zip.ZipEntry) entries.nextElement()).getName() + newLine;
System.out.println(
"ファイル番号" + cnt + ":" + " ファイル名前:" + zipEntryName + " ファイル名前の長さ:" + zipEntryName.length());
writer.write(zipEntryName, 0, zipEntryName.length());
}
}
}
public static void main(String[] args) {
String strZipName = "C:\\data\\test2020.zip";
String strOutputFileName = "C:\\data\\study\\info.txt";
try {
writeToFileZipFileContents(strZipName, strOutputFileName);
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.example; import java.io.IOException; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.io.BufferedWriter; public class ZipEntryDemo { public static void writeToFileZipFileContents(String zipFileName, String outputFileName) throws java.io.IOException { java.nio.charset.Charset charset = java.nio.charset.StandardCharsets.UTF_8; java.nio.file.Path outputFilePath = java.nio.file.Paths.get(outputFileName); // try-with-resources文でzipファイルを開く、出力ファイルを作成する try (ZipFile zf = new ZipFile(zipFileName); BufferedWriter writer = java.nio.file.Files.newBufferedWriter(outputFilePath, charset)) { // Enumerationでzipファイルの中身要素を列挙する int cnt = 0; for (Enumeration<? extends ZipEntry> entries = zf.entries(); entries.hasMoreElements();) { cnt++; // 圧縮ファイル名を取得し、出力ファイルに書き込む String newLine = System.getProperty("line.separator"); String zipEntryName = ((java.util.zip.ZipEntry) entries.nextElement()).getName() + newLine; System.out.println( "ファイル番号" + cnt + ":" + " ファイル名前:" + zipEntryName + " ファイル名前の長さ:" + zipEntryName.length()); writer.write(zipEntryName, 0, zipEntryName.length()); } } } public static void main(String[] args) { String strZipName = "C:\\data\\test2020.zip"; String strOutputFileName = "C:\\data\\study\\info.txt"; try { writeToFileZipFileContents(strZipName, strOutputFileName); } catch (IOException e) { e.printStackTrace(); } } }
package com.example;

import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.io.BufferedWriter;

public class ZipEntryDemo {

      public static void writeToFileZipFileContents(String zipFileName, String outputFileName)
                  throws java.io.IOException {

            java.nio.charset.Charset charset = java.nio.charset.StandardCharsets.UTF_8;
            java.nio.file.Path outputFilePath = java.nio.file.Paths.get(outputFileName);

            // try-with-resources文でzipファイルを開く、出力ファイルを作成する
            try (ZipFile zf = new ZipFile(zipFileName);
                        BufferedWriter writer = java.nio.file.Files.newBufferedWriter(outputFilePath, charset)) {

                  // Enumerationでzipファイルの中身要素を列挙する
                  int cnt = 0;
                  for (Enumeration<? extends ZipEntry> entries = zf.entries(); entries.hasMoreElements();) {
                        cnt++;
                        // 圧縮ファイル名を取得し、出力ファイルに書き込む
                        String newLine = System.getProperty("line.separator");
                        String zipEntryName = ((java.util.zip.ZipEntry) entries.nextElement()).getName() + newLine;
                        System.out.println(
                                    "ファイル番号" + cnt + ":" + " ファイル名前:" + zipEntryName + " ファイル名前の長さ:" + zipEntryName.length());
                        writer.write(zipEntryName, 0, zipEntryName.length());
                  }
            }
      }

      public static void main(String[] args) {
            String strZipName = "C:\\data\\test2020.zip";
            String strOutputFileName = "C:\\data\\study\\info.txt";

            try {
                  writeToFileZipFileContents(strZipName, strOutputFileName);
            } catch (IOException e) {
                  e.printStackTrace();
            }
      }
}

実行結果
ファイル番号1: ファイル名前:test20202.csv
ファイル名前の長さ:15
ファイル番号2: ファイル名前:testinfo.txt
ファイル名前の長さ:14
ファイル番号3: ファイル名前:test_2022oly.doc
ファイル名前の長さ:18

出力ファイルinfo.txtの内容下記
test20202.csv
testinfo.txt
test_2022oly.doc

Java

Posted by arkgame