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("")
得到的是當(dāng)前類FileTest.class文件的URI目錄。不包括自己!
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/
2.FileTest.class.getResource("/")
得到的是當(dāng)前的classpath的絕對URI路徑。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
3.Thread.currentThread().getContextClassLoader().getResource("")
得到的也是當(dāng)前ClassPath的絕對URI路徑。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
4.FileTest.class.getClassLoader().getResource("")
得到的也是當(dāng)前ClassPath的絕對URI路徑。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
5.ClassLoader.getSystemResource("")
得到的也是當(dāng)前ClassPath的絕對URI路徑。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
我推薦使用Thread.currentThread().getContextClassLoader().getResource("")來得到當(dāng)前的classpath的絕對路徑的URI表示法。
Java獲取文件大?。ㄎ募?、路徑)
文件大?。窂剑?/h3>
/**
* 文件大小--路徑
*
* @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 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(); } }
文件大?。ㄎ募?/h3>
/**
* 文件大小--文件
*
* @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;
}
/** * 文件大小--文件 * * @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); }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot的@GetMapping路徑匹配規(guī)則、國際化詳細教程
這篇文章主要介紹了SpringBoot的@GetMapping路徑匹配規(guī)則、國際化,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-11-11java基礎(chǔ)--自己動手實現(xiàn)一個LRU
這篇文章主要介紹了運用方案如何實現(xiàn)LUR,文章中通過代碼講解的非常詳細,對大家的工作或?qū)W習(xí)有一定的參考價值,感興趣的朋友可以參考一下2021-08-08Java二維數(shù)組與動態(tài)數(shù)組ArrayList類詳解
這篇文章主要給大家介紹了關(guān)于Java二維數(shù)組與動態(tài)數(shù)組ArrayList類的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Java中關(guān)于優(yōu)先隊列PriorityQueue的使用及相關(guān)方法
這篇文章主要介紹了Java中關(guān)于優(yōu)先隊列PriorityQueue的使用及相關(guān)方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08idea一招搞定同步所有配置(導(dǎo)入或?qū)С鏊信渲?
使用intellij idea很長一段時間,軟件相關(guān)的配置也都按照自己習(xí)慣的設(shè)置好,如果需要重裝軟件,還得需要重新設(shè)置,本文就詳細的介紹了idea 同步所有配置,感興趣的可以了解一下2021-07-07