首页 > 编程知识 正文

java获取文件路径的方法,java获取文件的相对路径

时间:2023-05-03 16:04:06 阅读:145437 作者:1931

提示: Java读取相对路径文件的前提也是相对的。 文件必须位于classpath下。 否则,无法读取任意相对文件。

Java假设读取相对路径文件。 文件必须位于classpath下。 否则,无法读取任意相对文件。

在IDE中创建项目时,通常存在项目的classpath目录src目录。 如果文件位于src目录或其子目录下,则可以在程序代码中使用相对路径进行读取。 这里的相对路径和文件系统的相对路径的概念可能略有不同。

例如:

公共类xmltest {

私有输入流编码(输入流is,字符串编码)。

try {

byte[] b=new byte[1024];

String res=' ';

if(is==null ) {

返回' ';

}

int bytesRead=0;

while (真)。

bytesread=is.read(b,0,1024 ); //return final read bytes counts

if(bytesread==-1 ) ({//end of InputStream

返回RES;

}

RES=新字符串(b,0,bytesRead,encoding );//转换为字符串使用字节

}

}catch(exceptione ) {

e .打印堆栈跟踪(;

system.out.print (exception : ) e;

返回' ';

}

}

publicstaticstringgenwscmd (stringxmlfilename )。

inputstream in=xmltest.class.getclass loader ().getresourceasstream (XML文件名称);

String x=new XmlTest ().inputstreamtostring(in,' UTF-8 ' );

返回x;

}

publicstaticvoidmain (字符串[ ] args ) {

stringout=genwscmd(sys_ds.XML );

system.out.println(out );

}

}

1、sys_ds.xml在src下,路径直接写名字。 但是,请不要写"/sys_ds.xml "。 这是错误的,被视为绝对路径。

2、请注意,将文件sys_ds.xml移动到mypack包下时,路径应该写为mypack/sys_ds.xml,前面没有“/”。

3、必须在ClassLoader中执行getResourceAsStream ()方法。 有两种方法可以获取类加载器。

inputstream in=testread.class.getclass loader ().getresourceasstream (XML文件名称);

或者

inputstream in=new test read (.getclass ).getClassLoader ).getresourceasstream (XML filename );

4、将一个流转换为字符串的实现如下。

//*

*读取输入流是内存字符串,保存文件的换行格式

*

* @param in输入流

* @param charset文件字符集代码

* @return文件内容字符串

*/

公共静态字符串文件2字符串{

StringBuffer sb=new StringBuffer (;

try {

linenumberreaderreader=newlinenumberreader (newbufferedreader ) newinputstreamreader(in,charset ) )

字符串线;

while((line=reader.readline ) )!=空) {

sb.append(line ).append ) system.getproperty (' line.separator ' );

}

reader.close (;

} catch (unsupportedencodingexceptione ) {

文件读取失败,因为使用了log.error ('不支持的字符编码' charset,e )。

}catch(ioexceptione ) {

log.error ('读取文件在内存字符串中失败。 失败的原因是读取文件异常!' 、e;

}

return sb.toString (;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。