最近用dom4j编写了个读写DOCX文档的GUI小程序。在Netbeans中,运行后,输出XML文件无乱码。
封装成JAR包发布后,发现输出XML文件中缺失中文。
经过反复检查代码,最后发现:
XMLWriter writer=new XMLWriter(new FileWriter(new File(tempFile)));
中,使用FileWriter输出的文件未采用UTF-8格式。
换成
XMLWriter writer=new XMLWriter(new OutputStreamWriter(
new FileOutputStream(tempFile), "UTF-8"));
后,问题解决。
另外,采用JDK7的ZIP文件系统后,无法关闭ZIP文件系统,报无法读取文件错误(No permission),经反复查询:
最后,在函数体内部关闭输入流,in=null;然后强行执行垃圾收集 System.gc()后,问题解决。