java我想要写某个文件,怎样获取文件的相对路径。文件位置:

工程
|____src
|____test.txt
|____Main.java
像上图,我怎样获取test.txt的路径呢?
我试过File f=new File("src/test.txt");结果运行正确,但一打jar包再运行就出错。怎么回事。(找不到路径)
也试过URL url=this.getClass.getResource("test.txt");
File f=new File(url.toURI());结果也是,运行正确,打包再运行错误。(URI is not hierarchical)
真是无语了,大家都是怎么写文件的?
还是不行,你也可以试试,难道我配置出错了?郁闷!运行正确,等打包再运行就又出错了。错误:URI is not hierarchical
补充一下啊,关于二楼的,我想要写的文件是在jar包中的,而不是指定路径的,我现在是不清楚怎样找相对路径,而不是不会写文件。谢谢

第1个回答  2010-12-23
package com.hmilyld.exp;

import java.io.File;

public class ListFile {

private long[] count = new long[] ;

private File file;

private long[] listFile(String path) {
file = new File(path);
File[] f = file.listFiles();
for (int i = 0; i < f.length; i++) {
if (f[i].isDirectory()) {
count[0]++;
this.listFile(f[i].getPath());
} else {
count[1]++;
}
}
return count;
}

/**
* 得到指定路径下的文件和文件夹数量
*
* @param path
* 要查看的路径
* @return object[0]耗时(毫秒)<br>
* object[1]文件夹数量<br>
* object[2]文件数量
*/
public Object[] getFileCount(String path) {
long t = System.currentTimeMillis();
long[] count = this.listFile(path);
t = System.currentTimeMillis() - t;
Object[] o = new Object[] { Long.valueOf(t), Long.valueOf(count[0]),
Long.valueOf(count[1])};
return o;
}

public static void main(String[] args) {
ListFile l = new ListFile();
Object[] count = l.getFileCount("d:\\");
System.out.println(count[0]);
System.out.println(count[1]);
System.out.println(count[2]);
}
}

以前写的一个获取目录下有多少文件和多少文件夹的代码,
可以参考下.:)
第2个回答  2010-12-22
URL url=this.getClass.getResource("/test.txt");
应当是少个/吧! LZ试试本回答被提问者和网友采纳
相似回答