@Override
protected Void call() throws Exception {
Platform.runLater(this.observableList::clear);
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
SAXParser saxParser = saxParserFactory.newSAXParser();
try (ZipFile zipFile = new ZipFile(this.selectedFile)) {
int workMax = zipFile.size();
long workDone = 0;
for (Enumeration<? extends ZipEntry> e = zipFile.entries(); e.hasMoreElements();) {
ZipEntry zipEntry = e.nextElement();
int position = zipEntry.getName().charAt(zipEntry.getName().length() - 7) - '0';
SyantenAnalyzer analyzer = new SyantenAnalyzer(position);
ParseHandler parseHandler = new ParseHandler(analyzer);
try (InputStream is = zipFile.getInputStream(zipEntry);
GZIPInputStream gzis = new GZIPInputStream(is)) {
saxParser.parse(gzis, parseHandler);
}
ArrayList<MahjongScene> scenes = analyzer.getOriScenes();
workDone++;
Platform.runLater(() -> observableList.addAll(scenes));
updateMessage(workDone + "/" + workMax);
updateProgress(workDone, workMax);
}
}
return null;
}
AnalyzeZipTask.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:tenhou-visualizer
作者:
评论列表
文章目录