Java如何获取当前程序所在文件夹,并在这个文件夹下读取其他的文件
1.首先需要获取文件夹的路径,方法有很多种,在大神那学来的是这种
Thread.currentThread().getContextClassLoader().getResource("");
2.加入新文件的路径 +“test.xml”;
3.因为路径获取的间隔符是 \ 符号,而Java支持的是 // 符号,需要用点手段修改一下
String mydir = (Thread.currentThread().getContextClassLoader().getResource("")+“database_ip.xml”).toString();
String newmydir = mydir.replaceAll("’’","/").replaceFirst(“file:/”, “”);
System.out.println(newmydir);
这个时候路径里会多出一段file:\这个用replaceFirst去解决。
全部代码:
package Front_interface;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.print.Doc;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Demo02Xml__利用java修改xml内容 {
public static String getDatabase_ip() {
// TODO Auto-generated method stub
String ip = null;
try {
// 实例化一个类用于添加xml文件
List<contest> list = new ArrayList<>();
//实现获取路径,并更正为java识别的书写方式
String mydir = (Thread.currentThread().getContextClassLoader().getResource("")+"database_ip.xml").toString();
String newmydir = mydir.replaceAll("'\'","/").replaceFirst("file:/", "");
System.out.println(newmydir);
//实现获取路径,并更正为java识别的书写方式
SAXReader reader = new SAXReader();
Document doc = reader.read(new File(newmydir));
// 读取指定标签
Iterator<Element> eleit = doc.getRootElement().elementIterator("user");
ArrayList newlist = new ArrayList(); // 创建新集合
while (eleit.hasNext()) {
Element ele = eleit.next();
contest con = new contest();
con.setDatabase_ip(ele.attributeValue("database_ip"));
list.add(con);
Iterator it = list.iterator(); // 通过老集合获取迭代器
while (it.hasNext()) { // 遍历老集合
Object obj = it.next(); // 得到老集合的元素
if (!newlist.contains(obj)) {
newlist.add(obj);
}
}
}
System.out.println(list.get(0));
ip = list.get(0).toString();
} catch (
Exception e) {
e.printStackTrace();
}
return ip;
}
}
package Front_interface;
import org.omg.Messaging.SyncScopeHelper;
public class contest {
private String database_ip;
/**
* @param id
*/
public contest(String database_ip) {
super();
this.database_ip = database_ip;
}
/**
* @param id
*/
public contest() {
}
public String getDatabase_ip() {
return database_ip;
}
public void setDatabase_ip(String database_ip) {
this.database_ip = database_ip;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return this.database_ip;
}
}
xml文件
<?xml version="1.0" encoding="utf-8"?>上一篇: 个人学习笔记
下一篇: 大四学校上课笔记 day1