以下代码是直接从我的项目下抽取的,实现的:读取压缩包中的treeJson.json文件,将该 文件的flag和当前传入参数flag作匹配。
/**
*
* Function:针对于压缩包,在不解压情况下直接读取文件内容
* error 异常 压缩包本身格式有问题
* @author
*/
private String readZipFile(File file,String bidId,String otbId,String flag) throws Exception {
String isSuc = "1";
try {
ZipFile zf = new ZipFile(file,Charset.forName("gbk"));
Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zf.entries();
ZipEntry ze;
while (entries.hasMoreElements()) {
ze = entries.nextElement();
if (ze.isDirectory()) {
continue;
} else {
if(ze.getName()!=null && ze.getName().endsWith("treeJson.json")){
System.err.println("file - " + ze.getName() + " : "
+ ze.getSize() + " bytes");
long size = ze.getSize();
if (size > 0) {
BufferedReader br = new BufferedReader(
new InputStreamReader(zf.getInputStream(ze),"UTF-8"));
String line;
while ((line = br.readLine()) != null) {
org.json.JSONObject json = new org.json.JSONObject(line);
if(flag != null ){
if(json.isNull("flag")){
isSuc = "-03";
}else{
if (flag.equals(json.getString("flag"))){
if(bidId!=null && bidId.equals(json.getString("sectionId"))){
if(otbId!=null && !otbId.equals(json.getString("mainId"))){
isSuc = "-1";//上传压缩文件不属于当前开标记录
}
}else{
//上传压缩文件不属于当前标段
isSuc = "-2";
}
}else if(flag.equals("openTender")){
isSuc = "-01";
}else if(flag.equals("bidEval")){
isSuc = "-02";
}
}
}
}
br.close();
}
break;
}
}
}
return isSuc;
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}