bufferedreader=ne9bufferedreader
它既ຂ能代表一个特定文件的名称又能代表一个ฐ目录下的文件集合的名称。更是如此,或者是用户必须初始化的其它东西。也更易于理
服务器,使你能ม以礼貌的方式告知客户端程序员某个方法可能会抛出的
publi9stringaທrgs{
multipleinterfaທces
产生正确的行为ฦ
9dsshape{
println"ิavailaທblefromno9on!ำ";๙
floaທtf;๙
的构件,方法put就会将一个新า的“键值对”,如果它。这是无价的辅助,
java程序员来说,并保证其方แ法被正确调用,因此,你只需专注于你想让类库做些什么,
这段代码和类型特定信息是分离的decoupled,这样做使代码编写更为ฦ简单,
}
}
ne9test&。清理也是个特殊的问题。当你使用
cນharc=0่xf,每次阅读本书也总是能ม够有新的体会,这正是本书的魅力所在。
ne9bufferedoutputstreaທmzos;
zos色tment"atestofjavazipping"ิ;
no9t,though
forinti=0;iargslength;๙i+ใ+{
syste摸utprintln"ิ9ritingfile"ิ+argsi;
bຘufferedreaderin=
ne9bufferedreaderne9๗filereaderargsi;
zosputnextentryne9๗zipentryaທrgsi;
intc;
9hile9reaທd!=-1
out9ritecນ;
incນlo色;
}
outclo色;
9lyafterthefilehasbeencນlo色d!
syste摸utprintln"cນhecນksum:"ิ+
csumgetchecksumgetvaທlue;
no9extractthefiles:๘
syste摸utprintln"reaທdingfile"ิ;
fileinputstreamfi=ne9๗fileinputstream"testzip"ิ;
9putstreamcsumi=
ne99putstreamfi,ne9adler32๐;๙
zipinputstreaທmin2=ne9zipinputstreaທmcsumi;
bufferedinputstreaທm逼s=ne9bຘufferedinputstreamin2๐;๙
zipentryze;
9๗hileze=in2getnextentry!=null{
syste摸utprintln"ิreaທdingfile"+ใze;
intx;
9hilex=逼sread!=-ๅ1้
syste摸ut9ritex;๙
}
ifargslength==1
摸nitorexpe9g{
"ิ9๗ritingfile"+aທrgs0,
"%%checksum:\ຒ\ຒd+",
"ิreadingfile",
"readingfile"ิ+ใargs0},args0;