欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java如何获取当前程序所在文件夹,并在这个文件夹下读取其他的文件

程序员文章站 2024-02-28 12:11:40
...

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"?>
相关标签: 个人学习