环境:linux,jdk 1.8
问题:打包导出文件时,两个不同的文件,内容一致。理论上来说应该是不同的文件,本地windows系统没有发现这个问题。也有可能是存在问题,但是没有发生。
我猜测在文件导出时,实际上,生成了两个不同的文件。但是在生成打包文件信息时出现了问题。
相关代码:
// 存放临时文件信息,用于将文件以压缩包导出
List<Map<String, String>> tempFileList = new ArrayList<>();
// 模板名称
String templateA = "ChineseTemplate.doc";
String templateB = "EnglishTemplate.doc";
// 临时文件名称
File tempFileA = new File(TEMP_FILE, 'ChineseName.doc');
File tempFileB = new File(TEMP_FILE, 'EnglishName.doc');
// ReportUtils是封装的导出方法,以template作为模板,填充数据,导出到临时文件
// dataA与dataB为填充到模板中的数据
ReportUtils.export(templateA, dataA, tempFileA.getAbsolutePath());
ReportUtils.export(templateB, dataB, tempFileB.getAbsolutePath());
// 可能出现问题的位置
Map<String, String> fileInfoMap = new HashMap<>();
// fileName:打包导出时临时文件的名称,path:临时文件路径
fileInfoMap.put("fileName", tempFileA.getName());
fileInfoMap.put("path", tempFileA.getAbsolutePath());
tempFileList.add(fileInfoMap);
fileInfoMap = new HashMap<>();
fileInfoMap.put("fileName", tempFileB.getName());
fileInfoMap.put("path", tempFileB.getAbsolutePath());
tempFileList.add(fileInfoMap);
.....
// 将tempFileList中的文件打包导出
.....
将第二个临时文件的fileInfoMap,如果定义为新的引用,例如,fileInfoMap2,则导出时没有任何问题。
期望导出的是两个文件名不同,内容也不同的文件。但是偶尔会导出文件名称不同,内容相同的问题。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…