java 读取本地文件实例详解
java读取本地文件实例详解
用javax.xml、w3c解析
实例代码:
packagecn.com.xinli.monitor.utils;
importorg.w3c.dom.Document;
importorg.w3c.dom.Element;
importjavax.xml.parsers.DocumentBuilder;
importjavax.xml.parsers.DocumentBuilderFactory;
importjava.io.File;
/**
*Createdbyjiyyon2017/4/6.
*/
publicclassReadXmlTest{
publicstaticvoidmain(String[]args){
Elementelement=null;
//可以使用绝对路劲
Filef=newFile("D:/workspace-idea/monitor-service/src/main/resources/logMonitor.xml");
//documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)
DocumentBuilderdb=null;
DocumentBuilderFactorydbf=null;
try{
//返回documentBuilderFactory对象
dbf=DocumentBuilderFactory.newInstance();
//返回db对象用documentBuilderFatory对象获得返回documentBuildr对象
db=dbf.newDocumentBuilder();
//得到一个DOM并返回给document对象
Documentdt=db.parse(f);
//得到一个elment根元素
element=dt.getDocumentElement();
//获得根节点
System.out.println("根元素:"+element.getNodeName());
}catch(Exceptione){
e.printStackTrace();
}
}
}
用dom4j解析
packagecn.com.xinli.monitor.test;
importorg.apache.commons.io.IOUtils;
importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.DocumentHelper;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.net.URISyntaxException;
/**
*Createdbyjiyyon2017/4/6.
*/
publicclassReadFileTest{
publicstaticvoidmain(String[]args){
//方法一:本地绝对路径获取xml文件内容,项目外的路径
StringfileUrl="/D:/workspace-idea/monitor-service/src/main/resources/logMonitor.xml";
InputStreamfis=null;
try{
fis=newFileInputStream(newFile(fileUrl));
Stringcontent=IOUtils.toString(fis,"UTF-8");
Documentdocument=DocumentHelper.parseText(content);
}catch(java.io.IOExceptione){
e.printStackTrace();
}catch(DocumentExceptione){
e.printStackTrace();
}
//方法二:项目绝对路径是在本class文件所在项目的根目录下找,也就是classes/下
try{
Stringcontent2=IOUtils.toString(ReadFileTest.class.getResourceAsStream("/logMonitor.xml"),"UTF-8");
Documentdocument2=DocumentHelper.parseText(content2);
}catch(IOExceptione){
e.printStackTrace();
}catch(DocumentExceptione){
e.printStackTrace();
}
//方法三:相对目录,在本ReadFileTest编译后的.class文件同级目录
try{
Stringcontent3=IOUtils.toString(ReadFileTest.class.getResourceAsStream("logMonitor.xml"),"UTF-8");
Documentdocument3=DocumentHelper.parseText(content3);
}catch(IOExceptione){
e.printStackTrace();
}catch(DocumentExceptione){
e.printStackTrace();
}
//方法四:相对目录,在本ReadFileTest编译后的.class文件上级目录的config目录下
try{
Stringcontent4=IOUtils.toString(ReadFileTest.class.getResourceAsStream("../config/logMonitor.xml"),"UTF-8");
Documentdocument4=DocumentHelper.parseText(content4);
}catch(IOExceptione){
e.printStackTrace();
}catch(DocumentExceptione){
e.printStackTrace();
}
//方法五:动态获取相对目录
try{
StringxmlPath="logMonitor.xml";
//获取当前类加载的根目录,如:/C:/ProgramFiles/Apache/Tomcat6.0/webapps/fee/WEB-INF/classes/
Stringpath=ReadFileTest.class.getClassLoader().getResource("").toURI().getPath();
//把文件读入文件输入流,存入内存中
FileInputStreamin=newFileInputStream(newFile(path+xmlPath));
Stringcontent5=IOUtils.toString(in,"UTF-8");
Documentdocument5=DocumentHelper.parseText(content5);
}catch(IOExceptione){
e.printStackTrace();
}catch(DocumentExceptione){
e.printStackTrace();
}catch(URISyntaxExceptione){
e.printStackTrace();
}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!