如何在文件名中读取带元字符的文件? 例如:
private void readDoc (String path) {
try {
SAXReader reader = new SAXReader();
this.doc = reader.read("_40208#1159SOV.xml");
} catch(Exception e) {
this.print(e.getMessage()); } }
我尝试使用:
reader.read(Pattern.quote("_40208#1159SOV.xml");
但它不起作用。想要一个不需要重命名文件的解决方案。 谢谢。
答案 0 :(得分:2)
read
将系统ID视为URL。 #
表示URL中的锚点,因此该方法会查找不存在的名为_40208
的文件。您可以对参数进行编码
Document doc = reader.read(URLEncoder.encode("_40208#1159SOV.xml", "UTF-8"));
文件的路径来自UI对话框(JFileChooser),它返回字符串
在这种情况下,解决方案更简单:SAXReader
provides an overloaded method which uses a File
reference
Document doc = reader.read(filechooser.getSelectedFile());
答案 1 :(得分:0)
在我的案例中,我找到了更容易解决此问题的方法
reader.read(new File(path));
完善任何URLEncoder.Hope它会帮助某人