Java读取文件设置先读取XML文件,后读取文件夹
时间: 2024-05-04 17:20:39 浏览: 104
java读取XML文件
5星 · 资源好评率100%
可以使用Java的File类和XML解析库来实现。以下是一种可能的实现方式:
1.先创建一个File对象,指向文件夹的路径。
2.使用File对象的listFiles()方法获取文件夹中的所有文件和子文件夹。
3.遍历listFiles()返回的File数组,如果是文件夹,则递归调用该文件夹并进行下一步操作;如果是文件,则判断文件后缀名是否为.xml,如果是则读取XML文件并处理,如果不是则读取普通文件并处理。
4.对于XML文件的读取和处理,可以使用Java提供的XML解析库,如DOM或SAX。
下面是一个简单的示例代码,仅供参考:
```
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
public class FileReader {
public static void main(String[] args) {
File folder = new File("path/to/folder");
readFiles(folder);
}
private static void readFiles(File folder) {
File[] files = folder.listFiles();
Arrays.sort(files); // 可选的:按文件名排序
for (File file : files) {
if (file.isDirectory()) {
readFiles(file); // 递归处理子文件夹
} else {
String fileName = file.getName();
if (fileName.endsWith(".xml")) {
readXmlFile(file);
} else {
readNormalFile(file);
}
}
}
}
private static void readXmlFile(File file) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new FileInputStream(file));
// TODO: 对XML文件进行处理
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
}
private static void readNormalFile(File file) {
try (FileInputStream fis = new FileInputStream(file)) {
byte[] buffer = new byte[(int) file.length()];
int length = fis.read(buffer);
// TODO: 对普通文件进行处理
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
阅读全文