import java.io.*
import java.util.zip.*
public class Zip {
static final int BUFFER = 2048// 定义缓冲区大小
public static void main (Stringargv[]) {
try {
BufferedInputStream origin= null // 创建带有缓冲区的inputstrream
FileOutputStream dest = new
FileOutputStream("c:\\zip\\myfigs.zip") // 创建文件输出流,并打开zip文件 CheckedOutputStream checksum = new
CheckedOutputStream(dest,new Adler32())// 创建过滤流,并验证数据的完整性
ZipOutputStream out = new
ZipOutputStream(new
BufferedOutputStream(checksum)) // 创建压缩文件输出流,并传入参数
//out.setMethod(ZipOutputStream.DEFLATED)
byte data[] = newbyte[BUFFER] // 创建字节数组
// get a list of files fromcurrent directory
File f = newFile(".")// 创建File变量读取根目录用于文件的读写
String files[] = f.list()// 读取f文件夹下所有的文件名
for (int i=0i <files.lengthi++) { // 根据文件名的数量进行循环
System.out.println("Adding: "+files[i])// 打印出添加的文件名到控制台
FileInputStream fi = new
FileInputStream(files[i])// 创建文件读取流,读取当前循环到的文件
origin = new
BufferedInputStream(fi, BUFFER)// 把文件流放入带有缓冲区的inputstream,并指定缓冲区大小
ZipEntry entry = newZipEntry(files[i])// 创建zip压缩入口实例化,放入当前循环到的文件
out.putNextEntry(entry)// 输出流中放入压缩的文件
int count
while((count =origin.read(data, 0,
BUFFER)) != -1) {// 当count值等于缓冲区读取的数据字节大小,且不等于-1
out.write(data, 0,count)// 输出流写入count字节大小的数据
}
origin.close()// 关闭带有缓冲区的inputstream
}
out.close()// 关闭输出流
System.out.println("checksum:
"+checksum.getChecksum().getValue())// 打印验证压缩文件的值到控制台
} catch(Exception e) { // 捕捉异常
e.printStackTrace()// 打印异常信息
}
}
}
在学java一定要问问自己喜欢吗?只要喜欢一切没问题,这是我的建议:多敲代码,多敲代码,多敲代码,重要的事情说三遍学习Java决不能听完敲一遍就过,一定要多敲几遍,第一遍可以跟着老师的思路,后面一定要有自己的思路,慢慢培养自己的编程思想和实现功能的逻辑。甚至可以自己给自己出题,完全靠自己实现一些有意思的小功能,对提升自己的能力和代码熟练度都有不小的帮助。
多看视频,多练习,主要是练习一些算法的运用,建议下载一些编程练习题,一道一道弄通弄懂。经常做笔记,用记事本把一些经典问题保存下来,以备复习。
如果是零基础的话,就看视频,b站上高旗老师讲得不错,每看到视频出现一段代码就马上在电脑上给他跑出来,不要直接拿源码光盘来复制,不要把视频看完半段了才开始敲代码。这样几天后你会找到一些感觉,然后没事就想些代码来写写,比如想下怎样把名字转换成乱码,然后再用另一个方法转换回来,模拟步话机发送几条消息什么的。这样下去不出3月你定牛逼,这时再把教材拿出来仔细看每一句话,掌握原理。
希望你早日学成,有苦恼一起讨论一下。
1,java中的每个类构造的时候都会调用父类的无参构造2,如果该父类没有无参构造,就必须在第一行用super(...)来调用父类的某个构造
3,这只是调用一个方法,并不构造一个对象