【发布时间】:2018-02-23 08:50:30
【问题描述】:
我想获取所有.java 文件并将它们放入ArrayList 文件中。我用ZipInputStream 和ZipEntry 遍历文件,但不明白如何从ZipEntry 获取文件。
public List<File> getJavaFiles(MultipartFile file){
List<File> javaFiles = new ArrayList<File>();
ZipEntry zipEntry;
log.info("getJavaFiles");
try {
ZipInputStream zip;
try {
zip = new ZipInputStream( file.getInputStream());
while((zipEntry = zip.getNextEntry()) != null){
if(zipEntry.getName().endsWith(".java")){
log.info(zipEntry.getName());
//How do I put the java file in my array list
}
}
zip.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return javaFiles;
}
【问题讨论】:
-
你想如何使用返回的
List<File>?它的目的是什么? -
请检查这里link
-
我想获取 java 文件的所有 cmets 和标识符来检查代码异味。所以我想从这个类中获取所有的java文件。然后使用这些文件(即获取 cmets 和标识符来检查代码异味)。 @Pshemo
-
File描述文件的位置,如 zip 文件,而不是其条目。也许你想要 URI。访问“Get a File or URI object for a file inside an archive with Java?”和“Read directly a file within a Zip file - Java”了解更多信息。 -
感谢您的澄清和链接。这很有帮助。 @Pshemo