嘉兴网站seo公司,肥城移动网站制作,dede自适应网站注意事项,做公司网站联系公司文章目录 1.将指定目录下的文件打包成 .zip2.将指定目录下的文件打包成 .tar.gz3.将指定目录下的文件打包成 .tar4.将指定目录下的文件打包成 .rar5.生成若干个txt并打包到zip中 1.将指定目录下的文件打包成 .zip
代码示例#xff1a;
import java.io.*;
import java.util.z… 文章目录 1.将指定目录下的文件打包成 .zip2.将指定目录下的文件打包成 .tar.gz3.将指定目录下的文件打包成 .tar4.将指定目录下的文件打包成 .rar5.生成若干个txt并打包到zip中 1.将指定目录下的文件打包成 .zip
代码示例
import java.io.*;
import java.util.zip.*;public class ZipFiles {public static void main(String[] args) {// 要压缩的文件或文件夹String sourceFile path/to/your/source/file_or_folder;// 压缩后的ZIP文件名String zipFileName output.zip;// 创建一个输出流将数据写入ZIP文件try (FileOutputStream fos new FileOutputStream(zipFileName);ZipOutputStream zos new ZipOutputStream(fos)) {// 调用递归方法压缩文件或文件夹addToZipFile(sourceFile, sourceFile, zos);System.out.println(文件已成功打包成 zipFileName);} catch (IOException e) {e.printStackTrace();}}private static void addToZipFile(String path, String sourceFile, ZipOutputStream zos) throws IOException {File file new File(sourceFile);// 如果是文件夹则获取其内容并递归调用此方法if (file.isDirectory()) {String[] fileList file.list();if (fileList ! null) {for (String fileName : fileList) {addToZipFile(path, sourceFile File.separator fileName, zos);}}return;}// 如果是文件则将其添加到ZIP文件中try (FileInputStream fis new FileInputStream(sourceFile)) {String entryName sourceFile.substring(path.length() 1); // 获取ZIP中的条目名称ZipEntry zipEntry new ZipEntry(entryName);zos.putNextEntry(zipEntry);byte[] bytes new byte[1024];int length;while ((length fis.read(bytes)) 0) {zos.write(bytes, 0, length);}}}
}将 path/to/your/source/file_or_folder 替换为要打包的文件或文件夹的路径然后运行该代码。它将创建一个名为 output.zip 的ZIP文件其中包含指定路径下的文件或文件夹。
2.将指定目录下的文件打包成 .tar.gz
可以使用 Java 中的 java.util.zip 包来创建 .tar.gz 文件。尽管 Java 的标准库没有直接提供对 .tar 格式的支持但你可以使用 TarArchiveOutputStream 以及 GzipCompressorOutputStream 来创建 tar.gz 归档文件。以下是一个示例
import org.apache.commons.compress.archivers.tar.*;
import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream;import java.io.*;public class TarGzFiles {public static void main(String[] args) {// 要压缩的文件或文件夹String sourceFile path/to/your/source/file_or_folder;// 压缩后的tar.gz文件名String tarGzFileName output.tar.gz;try {FileOutputStream fos new FileOutputStream(tarGzFileName);BufferedOutputStream bos new BufferedOutputStream(fos);GzipCompressorOutputStream gzos new GzipCompressorOutputStream(bos);TarArchiveOutputStream tarArchive new TarArchiveOutputStream(gzos);File file new File(sourceFile);addToTarArchive(file, tarArchive);tarArchive.finish();tarArchive.close();System.out.println(文件已成功打包成 tarGzFileName);} catch (IOException e) {e.printStackTrace();}}private static void addToTarArchive(File file, TarArchiveOutputStream tarArchive) throws IOException {String entryName file.getName();TarArchiveEntry tarEntry new TarArchiveEntry(file, entryName);tarArchive.putArchiveEntry(tarEntry);if (file.isFile()) {try (FileInputStream fis new FileInputStream(file)) {byte[] buffer new byte[1024];int len;while ((len fis.read(buffer)) ! -1) {tarArchive.write(buffer, 0, len);}tarArchive.closeArchiveEntry();}} else if (file.isDirectory()) {tarArchive.closeArchiveEntry();File[] children file.listFiles();if (children ! null) {for (File child : children) {addToTarArchive(child, tarArchive);}}}}
}在此示例中使用了 Apache Commons Compress 库你可以在 Maven 添加以下依赖
Maven
dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-compress/artifactIdversion1.21/version !-- 或者更高的版本 --
/dependency确保将 path/to/your/source/file_or_folder 替换为要打包的文件或文件夹的实际路径然后运行代码以创建 output.tar.gz 文件。
3.将指定目录下的文件打包成 .tar
Java的标准库中并没有直接支持创建.tar格式文件的类但你可以使用Apache Commons Compress库来完成这个任务。下面是一个示例代码
首先确保你在项目中包含了Apache Commons Compress库。如果使用Maven可以在pom.xml文件中添加以下依赖项
dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-compress/artifactIdversion1.21/version !-- 或者更高的版本 --
/dependency然后使用以下代码将文件打包成.tar文件
import org.apache.commons.compress.archivers.tar.*;
import org.apache.commons.compress.utils.IOUtils;import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class TarFiles {public static void main(String[] args) {// 要打包的文件或文件夹String sourceFile path/to/your/source/file_or_folder;// 打包后的tar文件名String tarFileName output.tar;try {FileOutputStream fos new FileOutputStream(tarFileName);BufferedOutputStream bos new BufferedOutputStream(fos);TarArchiveOutputStream tarArchive new TarArchiveOutputStream(bos);addToTarArchive(sourceFile, tarArchive);tarArchive.finish();tarArchive.close();System.out.println(文件已成功打包成 tarFileName);} catch (IOException e) {e.printStackTrace();}}private static void addToTarArchive(String filePath, TarArchiveOutputStream tarArchive) throws IOException {Path sourcePath Paths.get(filePath);String baseDir sourcePath.getFileName().toString();Files.walk(sourcePath).filter(path - !Files.isDirectory(path)).forEach(path - {try {String entryName baseDir File.separator sourcePath.relativize(path).toString();TarArchiveEntry tarEntry new TarArchiveEntry(path.toFile(), entryName);tarArchive.putArchiveEntry(tarEntry);FileInputStream fis new FileInputStream(path.toFile());IOUtils.copy(fis, tarArchive);fis.close();tarArchive.closeArchiveEntry();} catch (IOException e) {e.printStackTrace();}});}
}在这个示例中我们使用了Apache Commons Compress库来创建.tar文件。确保将path/to/your/source/file_or_folder替换为你要打包的实际文件或文件夹的路径并运行代码来创建output.tar文件。
4.将指定目录下的文件打包成 .rar
在Java中压缩成RAR格式的操作稍微有些复杂因为RAR格式是一种专有格式并没有Java标准库提供直接支持。为了压缩文件为RAR格式你可以使用第三方库比如通过调用WinRAR或其他命令行工具来实现。
一种方法是使用Java的ProcessBuilder来运行命令行来执行WinRAR或其他RAR压缩工具的命令。以下是一个简单的示例假设你已经安装了WinRAR并将其路径添加到了系统的环境变量中
import java.io.*;public class RARFiles {public static void main(String[] args) {// 要压缩的文件或文件夹String sourceFile path/to/your/source/file_or_folder;// 压缩后的RAR文件名String rarFileName output.rar;try {// 构建命令行String[] command {cmd, /c, rar, a, -r, rarFileName, sourceFile};// 创建进程并执行命令ProcessBuilder processBuilder new ProcessBuilder(command);Process process processBuilder.start();// 读取进程输出可选BufferedReader reader new BufferedReader(new InputStreamReader(process.getInputStream()));String line;while ((line reader.readLine()) ! null) {System.out.println(line);}// 等待进程执行结束int exitCode process.waitFor();if (exitCode 0) {System.out.println(文件已成功打包成 rarFileName);} else {System.out.println(打包过程中出现错误);}} catch (IOException | InterruptedException e) {e.printStackTrace();}}
}请替换 path/to/your/source/file_or_folder 为你要压缩的文件或文件夹的路径并确保系统中已经正确安装和配置了WinRAR。
记住这种方法需要系统中安装有WinRAR并且路径被正确添加到系统的环境变量中且这个示例中的代码并没有对WinRAR命令返回的错误进行详细处理。
5.生成若干个txt并打包到zip中
代码示例
import java.io.*;
import java.util.zip.*;public class GenerateTxtFilesAndZip {public static void main(String[] args) {String basePath path/to/your/directory; // 更换为你想要保存文件的文件夹路径int fileCount 10; // 要生成的文件数量try {// 创建文件夹如果不存在File directory new File(basePath);if (!directory.exists()) {directory.mkdirs();}// 生成txt文件并写入内容for (int i 1; i fileCount; i) {String fileName file i .txt;String filePath basePath File.separator fileName;String fileContent This is the content of fileName;try (BufferedWriter writer new BufferedWriter(new FileWriter(filePath))) {writer.write(fileContent);} catch (IOException e) {e.printStackTrace();}}// 打包成zip文件String zipFileName output.zip;byte[] buffer new byte[1024];FileOutputStream fos new FileOutputStream(zipFileName);ZipOutputStream zos new ZipOutputStream(fos);File dir new File(basePath);File[] files dir.listFiles();if (files ! null) {for (File file : files) {if (file.getName().endsWith(.txt)) {FileInputStream fis new FileInputStream(file);zos.putNextEntry(new ZipEntry(file.getName()));int length;while ((length fis.read(buffer)) 0) {zos.write(buffer, 0, length);}zos.closeEntry();fis.close();}}}zos.close();System.out.println(文件已成功打包成 zipFileName);} catch (IOException e) {e.printStackTrace();}}
}请替换path/to/your/directory为你想要保存生成文件的实际文件夹路径。这段代码会在指定路径下生成10个.txt文件并将它们打包成一个名为output.zip的ZIP文件。