Topic: 问一个很简单的io问题,谢谢大家的帮忙

  Print this page

1.问一个很简单的io问题,谢谢大家的帮忙 Copy to clipboard
Posted by: alin_ass
Posted on: 2003-11-25 21:42

这样使用的文件路径要绝对路径,可是我要相对与这个类的路径怎么办?
FileInputStream fin = new FileInputStream("infile.txt");

2.Re:问一个很简单的io问题,谢谢大家的帮忙 [Re: alin_ass] Copy to clipboard
Posted by: safe
Posted on: 2003-11-25 23:44

FileInputStream fin = new FileInputStream( new File(System.getProperty("user.dir"), "../../infile.txt") );

3.Re:问一个很简单的io问题,谢谢大家的帮忙 [Re: alin_ass] Copy to clipboard
Posted by: snowbug
Posted on: 2003-11-26 06:13

楼上的是相对于 user.dir 的,但是类不一定是从当前的工作路径加载的,而是取决于 classpath 的设定。正解应当是:

public File lookupClassPath(Object o){
Class cls = o.getClass();
ProtectionDomain domain = cls.getProtectionDomain();
if(domain == null)
return null;
CodeSource codeSource = domain.getCodeSource();
if(codeSource == null)
return null;
URL loc = codeSource.getLocation();
// Convert the URL to a file object
File filepath = new File(loc.getFile());
return filepath;
}

注意当传入一个JDK 自带的类时,此方法返回 null。如果类是从 jar 文件里加载的话,此方法返回一个 File 对象,该对象对应于这个jar文件。其它情况返回该类在classpath里对应的目录。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923