遍历项目文件夹下的所有文件

本文介绍了一个使用Java实现的简单XML编辑器程序,该程序能够遍历指定目录下的所有文件夹及文件,查找特定的XML文件(例如strings.xml),并在此文件中插入新的元素。通过这个例子,读者可以了解到如何读取XML文件、如何创建和插入新的XML元素以及如何将更改后的XML文件写回到磁盘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.huawei.test;

import java.io.File;
import java.io.FileOutputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;

public class InsertElement {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {


//递归项目文件夹下的所有文件夹及其中文件
File root = new File("E:\\eclipse3.6space\\Task");
showAllFiles(root);
}

final static void showAllFiles(File dir) throws Exception{
File[] fs = dir.listFiles();
for(int i=0; i<fs.length; i++){
if(fs[i].getAbsolutePath().contains("strings.xml")
&& !fs[i].getAbsolutePath().contains("large")){
System.out.println(fs[i].getAbsolutePath());
}
if(fs[i].isDirectory()){
try{
showAllFiles(fs[i]);
}catch(Exception e){}
}
}

try {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
SAXReader reader = new SAXReader();
Document document = reader.read("C:\\Users\\Administrator\\Desktop\\strings.xml");
Element root = document.getRootElement();
List<Element> elements = root.elements();
int index = 0;
for(Element element:elements){
index++;
if("app_name".equals(element.attributeValue("name"))){
Element elem = DocumentHelper.createElement("string");
elem.addAttribute("name", "bbb");
elem.setText("ppppppp");
// elem.addAttribute("name", "ccc");
elements.add(index,elem);
break;
}
}

OutputFormat format1 = OutputFormat.createPrettyPrint();//缩减型格式
//OutputFormat format = OutputFormat.createCompactFormat();//紧凑型格式
format1.setEncoding("utf-8");//设置编码
// //format.setTrimText(false);//设置text中是否要删除其中多余的空格
org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(
new FileOutputStream( new File("C:\\Users\\Administrator\\Desktop\\strings.xml")),format1);
// XMLWriter writer = new XMLWriter(new FileWriter("C:\\Users\\Administrator\\Desktop\\strings.xml"),format);
xmlWriter.write(document);
xmlWriter.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值