Comment Java génère-t-il un fichier .tar à partir d'une image au format tar, nous définissons ci-dessous une méthode tarCompression(String[] filesPathArray, String resultFilePath) pour implémenter cette fonction. .
(Partage de didacticiels vidéo associés :tutoriel vidéo Java
)1. Implémenter tarCompression(String[] filesPathArray, String resultFilePath)
/* tar打包压缩
* @param filesPathArray 要压缩的文件的全路径(数组)
* @param resultFilePath 压缩后的文件全文件名(.tar)
* @throws Exception
*/
public static boolean tarCompression(String[] filesPathArray, String resultFilePath) throws Exception {
System.out.println(" tarCompression -> Compression start!");
FileOutputStream fos = null;
TarArchiveOutputStream taos = null;
try {
fos = new FileOutputStream(new File(resultFilePath));
taos = new TarArchiveOutputStream(fos);
for (String filePath : filesPathArray) {
BufferedInputStream bis = null;
FileInputStream fis = null;
try {
File file = new File(filePath);
TarArchiveEntry tae = new TarArchiveEntry(file);
// 此处指明 每一个被压缩文件的名字,以便于解压时TarArchiveEntry的getName()方法获取到的直接就是这里指定的文件名
// 以(左边的)GBK编码将file.getName()“打碎”为序列,再“组装”序列为(右边的)GBK编码的字符串
tae.setName(new String(file.getName().getBytes("GBK"), "GBK"));
taos.putArchiveEntry(tae);
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
int count;
byte data[] = new byte[1024];
while ((count = bis.read(data, 0, 1024)) != -1) {
taos.write(data, 0, count);
}
} finally {
taos.closeArchiveEntry();
if (bis != null)
bis.close();
if (fis != null)
fis.close();
}
}
} finally {
if (taos != null)
taos.close();
if (fos != null)
fos.close();
}
System.out.println(" tarCompression -> Compression end!");
return true;
}
public static void main(String[] args) { tarCompression(new String["a.png", "b.png"], "e:\test.tar") }
Site Web PHP chinois, un grand nombre de
cours d'apprentissage de la programmation
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!