java讀取文件路徑,Java根據文件路徑獲取文件名稱

本文目錄一覽:

JAVA中如何得到文件路徑

java文件中獲得路徑

Thread.currentThread().getContextClassLoader().getResource(“”) //獲得資源文件(.class文件)所在路徑

ClassLoader.getSystemResource(“”)

Class_Name.class.getClassLoader().getResource(“”)

Class_Name.class .getResource(“/”)

Class_Name.class .getResource(“”) // 獲得當前類所在路徑

System.getProperty(“user.dir”) // 獲得項目根目錄的絕對路徑

System.getProperty(“java.class.path”) //得到類路徑和包路徑

列印輸出依次如下:

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/

F:\work_litao\uri_test

F:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar

java中獲取文件路徑的幾種方式

獲取當前類的所在工程路徑;

如果不加「/」

File f = new File(this.getClass().getResource(“”).getPath());

System.out.println(f);結果:C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin\com\test

獲取當前類的絕對路徑;第二種:File directory = new File(“”);//參數為空

String courseFile = directory.getCanonicalPath() ;

System.out.println(courseFile);結果:C:\Documents and Settings\Administrator\workspace\projectName

獲取當前類的所在工程路徑;第三種:URL xmlpath = this.getClass().getClassLoader().getResource(“selected.txt”);

System.out.println(xmlpath);結果:file:/C:/Documents%20and%20Settings/Administrator/workspace/projectName/bin/selected.txt

獲取當前工程src目錄下selected.txt文件的路徑第四種:System.out.println(System.getProperty(“user.dir”));結果:C:\Documents and Settings\Administrator\workspace\projectName

獲取當前工程路徑第五種:System.out.println( System.getProperty(“java.class.path”));結果:C:\Documents and Settings\Administrator\workspace\projectName\bin獲取當前工程路徑

在java項目中如何獲取某個文件的路徑

File類有兩個常用方法可以得到文件路徑一個是:getCanonicalPath(),另一個是:getAbsolutePath(),可以通過File類的實例調用這兩個方法例如file.getAbsolutePath()其中file是File的實例對象。下面是一個具體例子:

public class PathTest

{

    public static void main(String[] args)

    {

        File file = new File(“.\\src\\baidu”);

        System.out.println(file.getAbsolutePath());

        try

        {

            System.out.println(file.getCanonicalPath());

        } catch (IOException e)

        {

            e.printStackTrace();

        }

    }

}

getAbsolutePath()和getCanonicalPath()的不同之處在於,getCanonicalPath()得到的是一個規範的路徑,而getAbsolutePath()是用構造File對象的路徑+當前工作目錄。例如在上面的例子中.(點號)代表當前目錄。getCanonicalPath()就會把它解析為當前目錄但是getAbsolutePath()會把它解析成為目錄名字(目錄名字是點號)。

下面是上面程序在我電腦上的輸出:

G:\xhuoj\konw\.\src\baidu

G:\xhuoj\konw\src\baidu

java怎麼獲取文件的相對路徑

一個例子,如果有一個Test文件夾裡面有test.java和hello.txt.如果你想用test.java操作hello.txt

只要在test.java中這樣寫File file=new File(“hello.txt”);//這樣就是相對路徑。如果文件結構是

Test文件夾

… |——test.java

… |——hello.txt

… |——source文件夾

…………….. |———world.txt

如果想在test.java中操作world.txt。只要這樣寫File file=new File(“source/world.txt”);

另外,在web開發中/代表項目文件夾根目錄,當然也有可能代替webapps,區分方法是:如果/開頭的uri是給瀏覽器解析則/代表webapps,如果是給伺服器後台解析,則代表項目文件

java 根據文件獲取文件名及路徑的方法

我寫了一段遍歷某個文件查找指定文件的,你自己改成你需要的功能。

import java.io.File;

import java.util.HashMap;

public class Test1 {

static HashMapString, String filelist=new HashMapString, String();

/**

* 遞歸方法

* @param path 文件路徑

*/

public static void find(String path){

File file=new File(path);

File[] files = file.listFiles();

//如果文件數組為null則返回

if (files == null)

return;

for (int i = 0; i files.length; i++) {

if (files[i].isDirectory()) {

//判斷是不是文件夾,如果是文件夾則繼續向下查找文件

find(files[i].getAbsolutePath());

} else {

//記錄文件路徑

String filePath = files[i].getAbsolutePath().toLowerCase();

//記錄文件名

String fileName=files[i].getName().toLowerCase();

// System.out.println(“—“+strFileName);

filelist.put(fileName, filePath);

}

}

}

public static void main(String[] args) {

//需要遍歷的路徑,也就是你要查找文件所在的路徑

String path=”D:\\kpi\\”;

find(path);

System.out.println(“kpi.9的路徑:”+filelist.get(“kpi.9”));

//輸出結果:d:\kpi\kpi.9

}

}

Java 獲取配置文件路徑

讀取配置文件 , xxx.properties放在webroot/WEB-INF/classes/目錄下

首先將配置文件轉換成InputStream,有兩種方式,原理一樣,都是通過類載入器得到資源:

(1)InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(”xx.properties”);

(2) InputStream inputStream =

this.getClass() .getClassLoader().getResourceAsStream( “xx.properties” );

調用對象的getClass()方法是獲得對象當前的類類型,這部分數據存在方法區中,

而後在類類型上調用 getClassLoader()方法是得到當前類型的類載入器,我們知道在Java中所有的類都是通過載入器載入到虛擬機中的,而且類載入器之間存在父 子關係,就是子知道父,父不知道子,這樣不同的子載入的類型之間是無法訪問的(雖然它們都被放在方法區中),所以在這裡通過當前類的載入器來載入資源也就 是保證是和類類型同一個載入器載入的。

最後調用了類載入器的getResourceAsStream()方法來載入資源。

(3) 然後載入配置文件,讀取屬性值

Properties prop = new Properties();

prop.load(input);

String value = prop.getProperty(“PropertyName”);

input.close();

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241149.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:25
下一篇 2024-12-12 12:26

相關推薦

發表回復

登錄後才能評論