
正文
JAVA中的压缩代码 java压缩文件代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
LZSS压缩算法的java代码
可以参考一下这个代码:
import java.io.*;
public class pack
{
public final static byte F_PACK_MAGIC[]={ 0x73,0x6C,0x68,0x21};
/* magic number for packed files */
public final static byte F_NOPACK_MAGIC[]= { 0x73, 0x6C, 0x68, 0x2E};
/* magic number for autodetect */
private static void usage()
{
System.out.print("\nFile compression utility for Allegro 3.12");
System.out.print("\nBy Shawn Hargreaves, Aug 1999. Java version by Radim Kolar, Dec 1999\n\n");
System.out.print("Usage: 'pack in out' to pack a file\n");
System.out.print(" 'pack u in out' to unpack a file\n");
System.exit(1);
}
public static void main(String argv[]) throws IOException
{
String t="";
String f1="",f2="";
InputStream in;
OutputStream out;
long s1,s2;
boolean pack=true;
if (argv.length==2) {
f1 = argv[0];
f2 = argv[1];
t = "Pack";
}
else if ((argv.length==3) (argv[0].length()==1)
((argv[0].charAt(0)=='u') || (argv[0].charAt(0)=='U'))) {
f1 = argv[1];
f2 = argv[2];
t = "Unpack";
pack=false;
}
else
usage();
if (f1.equals(f2))
{
System.out.println("\nError: Files must be different.");
System.exit(1);
}
in = null;
try
{
in = new FileInputStream(f1);
}
catch ( IOException i)
{
System.out.println("\nError: "+f1+" - Can't open.");
System.exit(1);
}
s1 = new File(f1).length();
/* handle magic */
if(!pack) {
byte magic[]=new byte[4];
in.read(magic);
int bad=0;
for(int i=2;i=0;i--)
if(magic[i]!=F_PACK_MAGIC[i])
bad=1;
if(bad==0)
if(magic[3]!=F_PACK_MAGIC[3])
if(magic[3]==F_NOPACK_MAGIC[3]) bad=2;
else bad=1;
if(bad==1)
{
System.out.println("\nError: "+f1+" - Not a packed file. (No magic)");
System.exit(1);
}
if(bad==0) in = new LZSSInputStream(in);
}
out = new FileOutputStream(f2);
if(pack)
{
out.write(F_PACK_MAGIC);
out = new LZSSOutputStream(out);
}
System.out.println(t+"ing "+f1+" into "+f2+"...");
byte b[]=new byte[512];
int i;
while ( (i=in.read(b))!=-1) {
out.write(b,0,i);
}
in.close();
out.close();
if (s1 0) {
s2 = new File(f2).length();
System.out.println("\nInput size: "+s1+"\nOutput size: "+s2+"\n"+(s2*100+(s11))/s1+"%");
}
return;
}
}
相关问答
Q1: 如何使用JAVA代码压缩PDF文件
用java代码压缩应用到程序了JAVA中的压缩代码,代码一般是比较复杂JAVA中的压缩代码的,对pdf文件的mate标签优化,这类标签包括三类,pdf文件不是网页就是个文件,何况我们可以用pdf压缩工具压缩,下面有个解决方法,楼主可以做参照。
1:点击打开工具,打开主页面上有三个功能进行选择,我们选择pdf文件压缩。
2:这这个页面中我们选择pdf文件在这里打开,点击“添加文件”按钮将文件添加进来。
3:然后在页面中点击“开始压缩”就可以开始压缩文件了。
4:压缩完成的文件页面会显示已经完成。
Q2: 关于Java的解压缩的代码?
package com.javatest.techzero.gui;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
public class ZipFileDemo {
@SuppressWarnings("resource")
public static void main(String args[]) throws Exception {
File file = new File("d:" + File.separator + "test.zip");
File outFile = null;
ZipFile zipFile = new ZipFile(file);
ZipInputStream zipInput = new ZipInputStream(new FileInputStream(file));
ZipEntry entry = null;
InputStream input = null;
OutputStream out = null;
while ((entry = zipInput.getNextEntry()) != null) {
System.out.println("开始解压缩" + entry.getName() + "文件。。。");
outFile = new File("d:" + File.separator + entry.getName());
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdir();
}
if (!outFile.exists()) {
outFile.createNewFile();
}
input = zipFile.getInputStream(entry);
out = new FileOutputStream(outFile);
int temp = 0;
while ((temp = input.read()) != -1) {
SPAN style="WHITE-SPACE: pre" /SPAN//System.out.println(temp);
out.write(temp);
}
input.close();
out.close();
}
System.out.println("Done!");
}
}
仅供参考
Q3: 如何用java创建一个加密的压缩包
下面的示例代码演示如何创建zip压缩包。
首先需要由需要压缩的文件创建一个InputStream对象,然后读取文件内容写入到ZipOutputStream中。
ZipOutputStream类接受FileOutputStream作为参数。创建号ZipOutputStream对象后需要创建一个zip entry,然后写入。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
*
* @author outofmemory.cn
*/
public class Main {
/**
* Creates a zip file
*/
public void createZipFile() {
try {
String inputFileName = "test.txt";
String zipFileName = "compressed.zip";
//Create input and output streams
FileInputStream inStream = new FileInputStream(inputFileName);
ZipOutputStream outStream = new ZipOutputStream(new FileOutputStream(zipFileName));
// Add a zip entry to the output stream
outStream.putNextEntry(new ZipEntry(inputFileName));
byte[] buffer = new byte[1024];
int bytesRead;
//Each chunk of data read from the input stream
//is written to the output stream
while ((bytesRead = inStream.read(buffer)) 0) {
outStream.write(buffer, 0, bytesRead);
}
//Close zip entry and file streams
outStream.closeEntry();
outStream.close();
inStream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Main().createZipFile();
}
Q4: java如何实现多个文件的压缩
import java.util.*;
import java.net.URI;
import java.nio.file.Path;
import java.nio.file.*;
public class ZipFSPUser {
public static void main(String [] args) throws Throwable {
MapString, String env = new HashMap();
env.put("create", "true");
// locate file system by using the syntax
// defined in java.net.JarURLConnection
URI uri = URI.create("jar:file:/codeSamples/zipfs/zipfstest.zip");
try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {
Path externalTxtFile = Paths.get("/codeSamples/zipfs/SomeTextFile.txt");
Path pathInZipfile = zipfs.getPath("/SomeTextFile.txt");
// copy a file into the zip file
Files.copy( externalTxtFile,pathInZipfile,
StandardCopyOption.REPLACE_EXISTING );
}
}
}
创建一个zip文件,并添加一个文件进去,需要JDK7
关于JAVA中的压缩代码和java压缩文件代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







