代码如下:URL url = Test.class.getResource("test.txt");
File file = new File(url.getFile());
System.out.println(file.lastModified());
不知道为什么怎么修改test.txt返回永远是0,也就是GMT的起始时间
File file = new File(url.getFile());
System.out.println(file.lastModified());
不知道为什么怎么修改test.txt返回永远是0,也就是GMT的起始时间
这不是多此一举吗
这个字符串所对应的文件肯定不存在,那么file 就成了new file了。自然就是0了。
public long lastModified()返回此抽象路径名表示的文件最后一次被修改的时间。 返回:
表示文件最后一次被修改的时间的 long 值,用与时间点(1970 年 1 月 1 日,00:00:00 GMT)之间的毫秒数表示;如果该文件不存在,或者发生 I/O 错误,则返回 0L text.txt 文件不存在,所以返回0
java.net 类 URL类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。
用这个有什么问题吗,主要为了获取test.txt的路径阿
url.getFile()返回的结果是一个字符串阿,也就是test.txt的绝对路径。然后用new File阿。上面的代码实际上不就等于下面的吗String path = "test.txt的绝对路径";
File file = new File(path);
System.out.println(file.lastModified());这样跟java.net.URL有什么关系吗
这个文件肯定存在的,我都修改了好几次了。我在test.txt删掉,代码就报异常了。
这个我也是试了很久才用这个办法的,因为Test.class跟test.txt在同一个包里,要获取test.txt的File对象
得有文件系统的绝对路径才行,而又不想把绝对路径写到程序里。有什么别的方法吗,请指教?
// TODO Auto-generated method stub
URL url = Test.class.getResource("test.txt");
String fpath = url.getFile().substring(1, url.getFile().length());
fpath = URLDecoder.decode(fpath,"UTF-8");
File file = new File(fpath);
Date date = new Date(file.lastModified());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date));
}
看到楼上几位纠结于java.net.URL,想起一句话:程序员经常会感觉到莫些代码有问题而死缠不放,从而忽略了问题本身