【问题标题】:Read Information from .XML file从 .XML 文件中读取信息
【发布时间】:2013-06-28 07:12:31
【问题描述】:

假设我有以下格式的 .xml 文件。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<config>
    <Directory>c:/test</Directory>
    <headerLine>1</headerLine>
    <pattern>.*\.txt</pattern>
</config>

&lt;Directory&gt;标签,指定文件路径。

&lt;headerLine&gt;标签,指定我的文件有多少行有标题,另一个是正文。(不重要)

&lt;pattern&gt; 标签。指定文件的格式。

问题是:

我想读取一个文件。首先,我必须转到&lt;Directory&gt; 标签,并获取我的文件目录,然后我必须使用指定模式读取该目录中的所有文件,这些文件显示在标签中。 例如 .in C:/test ,我有很多文件,但我应该读取以 ".*.txt" 结尾的文件。 我使用“Unmarshal”算法从 .xml 读取并将其转换为 java 对象。 我的问题是如何使用该模式定义读取 c:/test 目录中的所有文件。 你能帮我吗,我该如何解决这个问题?

FileSplitter fileSplitter = new FileSplitter("C:\\test.txt");

使用此代码,我只能读取 test.txt 文件,但我想读取具有特定模式的目录。

【问题讨论】:

  • 读取 XML 的方法有很多。使用DOM、SAX等。详情docs.oracle.com/javase/tutorial/jaxp
  • 您是在问如何读取 XML 或如何使用正则表达式读取文件?
  • 试试这个从stackoverflow.com/a/5924345/1862502目录读取文件
  • 我的问题是如何用“正则表达式”读取文件
  • 您可以按照@VigneshVino 的建议使用 FilenameFilter。没有什么能阻止您在 accept() 方法中使用正则表达式。

标签: java algorithm file jaxb


【解决方案1】:

是的,没错。 正如“Vignesh Vino”所建议的那样,这段代码解决了我的问题并回答了我的问题

File folder = new File("/path/to/files");
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
  File file = listOfFiles[i];
  if (file.isFile() && file.getName().endsWith(".txt")) {
    String content = FileUtils.readFileToString(file);
    /* do somthing with content */
  } 
}

【讨论】:

    猜你喜欢
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 2013-12-22
    相关资源
    最近更新 更多