Java Sax读取具有Metacharacters的文件名



您如何在文件名中使用metacharacters读取文件?例如:

  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");

但行不通。想要一个不需要重命名文件的解决方案。谢谢。

read将系统ID视为URL。#表示URL中的锚固,因此该方法查找不存在的名为_40208的文件。您可以编码参数

Document doc = reader.read(URLEncoder.encode("_40208#1159SOV.xml", "UTF-8"));

文件的路径正在从返回字符串

的UI对话框(Jfilechooser)获取

在这种情况下,解决方案更简单:SAXReader提供了使用File参考

的超载方法
Document doc = reader.read(filechooser.getSelectedFile());

在我的情况下,我发现了这个问题的更简单解决方案 reader.read(new File(path));与任何urlencoder一起工作。希望可以帮助某人

最新更新