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); }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。