Java如何获取相对路径文件
作者:蓝天⊙白云
Java获取相对路径文件
1. 文件在src下
class.getResourceAsStream(“”)获得的是相对路径 class.getClassLoader().getResourceAsStream(“”)加载器获得是绝对路径
Class.getResourceAsStream(String path) :
- (1)不以 “/” 开头时,默认是从此类所在的包下取资源。
- (2)以**“/”**开头,则是从ClassPath(Src根目录)根下获取。
Class.getClassLoader.getResourceAsStream(String path) :
- 默认则是从ClassPath根下获取,path不能以’/'开头。
2. 文件在src同级目录下

InputStream in = new BufferedInputStream(new FileInputStream("./test/aaa.txt"));1.FileTest.class.getResource("")
得到的是当前类FileTest.class文件的URI目录。不包括自己!
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/
2.FileTest.class.getResource("/")
得到的是当前的classpath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
3.Thread.currentThread().getContextClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
4.FileTest.class.getClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
5.ClassLoader.getSystemResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
我推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法。
Java获取文件大小(文件、路径)
文件大小(路径)
/**
* 文件大小--路径
*
* @return
*/
public static long getFileLength(String downloadUrl) {
if(downloadUrl == null || "".equals(downloadUrl)){
return 0L ;
}
URL url = null;
try {
url = new URL(downloadUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
return 0L;
}
HttpURLConnection conn = null;
try {
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("HEAD");
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows 7; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36 YNoteCef/5.8.0.1 (Windows)");
return (long) conn.getContentLength();
} catch (IOException e) {
return 0L;
} finally {
conn.disconnect();
}
}文件大小(文件)
/**
* 文件大小--文件
*
* @return
*/
public static int getFileSize(File file) {
int fileSize = 0;
FileInputStream fis = null;
try {
if (file.exists() && file.isFile()) {
String fileName = file.getName();
fis = new FileInputStream(file);
fileSize = fis.available();
System.out.println("文件" + fileName + "的大小是:" + fis.available() + "\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != fis) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return fileSize;
}测试下
public static void main(String[] args) {
File file = new File("C:\\Users\\xuzh\\Desktop\\6f3c0052d684451a92e7fb5b55eda9fd.jpg");
getFileSize(file);
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
