📄 gzip.java
字号:
import java.io.*;
import java.util.zip.*;
public class GZip
{
public void gzip(String filename) //filename表示控制台传来的文件的路径+文件名
{
String gzfile = getFileName(filename)+".gzip";//调用getFileName方法得到文件名,同".gzip"生成压缩文件的名字。gzip只能对单个文件压缩,所以直接命名为.gzip
try
{
//打开需压缩文件作为文件输入流,注意,只能为单个文件,不能为目录
FileInputStream fin = new FileInputStream(filename);
//建立压缩文件输出流
FileOutputStream fout=new FileOutputStream(gzfile);
//建立GZIP压缩输出流
GZIPOutputStream gzout=new GZIPOutputStream(fout);
//设置读入缓冲区
byte[] buf=new byte[1]; //创建一个空间的字节数组来存放一个压缩文件
System.out.println("开始解压"+filename+"... ...");
while ( fin.read(buf) != -1) //将文件读到字节数组中
{
gzout.write(buf,0,1); //将字节数组中的文件写出到相应的gzip文件中。
}
System.out.println("压缩"+filename+"完成");
gzout.close();
fout.close();
fin.close();
}
catch(IOException e)
{
System.out.println(e);
}
}
//用于取的指定路径文件的文件名,如"c:\test\a.htm"中的文件名a.htm
public String getFileName(String filePath)//filePath为控制台输入的路径+文件名
{
int begin = filePath.lastIndexOf("\\")+1;//找到最后一级目录
return filePath.substring(begin);//得到文件名
}
public static void main(String[] args)
{
if (args.length !=1)
{
System.out.println("用法:java GZip SourceFile");
System.exit(1);
}
else
{
GZip gz = new GZip();//创建当前类对象
gz.gzip(args[0]);//调用gzip方法并传一个控制台的参数,该参数表示将要压缩文件的路径名+文件名
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -