<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Java – 解壓縮帶有子目錄的文件 > 原文: [https://howtodoinjava.com/java/io/unzip-file-with-subdirectories/](https://howtodoinjava.com/java/io/unzip-file-with-subdirectories/) **Java 代碼示例,它使用`java.util.zip`包從壓縮的 zip 文件**中解壓縮并提取文件。 在此示例中,代碼打開一個 zip 文件并以與目錄瀏覽類似的方式開始遍歷這些文件。 如果找到目錄條目,則創建目錄。 如果找到文件條目,則寫入解壓縮的文件。 ## 解壓縮文件示例 ```java import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; public class Main { public static void main(String[] args) { //Open the file try(ZipFile file = new ZipFile("files.zip")) { FileSystem fileSystem = FileSystems.getDefault(); //Get file entries Enumeration<? extends ZipEntry> entries = file.entries(); //We will unzip files in this folder String uncompressedDirectory = "uncompressed/"; Files.createDirectory(fileSystem.getPath(uncompressedDirectory)); //Iterate over entries while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); //If directory then create a new directory in uncompressed folder if (entry.isDirectory()) { System.out.println("Creating Directory:" + uncompressedDirectory + entry.getName()); Files.createDirectories(fileSystem.getPath(uncompressedDirectory + entry.getName())); } //Else create the file else { InputStream is = file.getInputStream(entry); BufferedInputStream bis = new BufferedInputStream(is); String uncompressedFileName = uncompressedDirectory + entry.getName(); Path uncompressedFilePath = fileSystem.getPath(uncompressedFileName); Files.createFile(uncompressedFilePath); FileOutputStream fileOutput = new FileOutputStream(uncompressedFileName); while (bis.available() > 0) { fileOutput.write(bis.read()); } fileOutput.close(); System.out.println("Written :" + entry.getName()); } } } catch(IOException e) { e.printStackTrace(); } } } ``` ## 示例如何運作 下面列出的事情在上面的示例中依次發生。 1. [`ZipFile`](https://docs.oracle.com/javase/8/docs/api/java/util/zip/ZipFile.html)對象表示`.zip`文件,并用于訪問其信息。 2. [`ZipEntry`](https://docs.oracle.com/javase/8/docs/api/java/util/zip/ZipEntry.html)類表示 zip 文件中的條目-文件或目錄。 3. 每個`ZipEntry`實例都具有壓縮和未壓縮的大小信息,名稱以及未壓縮字節的輸入流。 4. 使用[`InputStream`](https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html)和[`BufferedInputStream`](https://docs.oracle.com/javase/8/docs/api/java/io/BufferedInputStream.html),我們將未壓縮的字節讀入字節緩沖區,然后使用[`FileOutputStream`](https://docs.oracle.com/javase/8/docs/api/java/io/FileOutputStream.html)將其寫入文件。 5. 繼續這樣做,直到處理完整個文件。 將我的問題放在評論部分。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看