導航:首頁 > 編程語言 > java打開文件夾路徑

java打開文件夾路徑

發布時間:2024-02-22 15:43:48

java中用相對路徑打開文件。

1、在Java開發工具的project中使用相對路徑

在project中,相對路徑的根目錄是project的根文件夾,在此就是repathtest文件夾了。創建文件的寫法是:

Filef=newFile("src/com/lavasoft/res/a.txt");
Filef=newFile("doc/b.txt");

注意:路徑不以「/」開頭;

脫離了IDE環境,這個寫法就是錯誤的,也並非每個IDE都如此。

2、通過CLASSPATH讀取包內文件

讀取包內文件,使用的路徑一定是相對的classpath路徑,比如a,位於包內,此時可以創建讀取a的位元組流:

InputStreamin=ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");

有了位元組流,就能讀取到文件內容了。

注意:這里必須以「/」開頭;

3、看看完整的java中用相對路徑打開文件測試代碼:

packagecom.lavasoft.test;

importjava.io.*;

/**
*Java讀取相對路徑的文件
*

*/
publicclassReadFile{
publicstaticvoidmain(String[]args){
readTextA_ByClassPath();
readTextA_ByProjectRelativePath();
readTextB_ByProjectRelativePath();
}

/**
*通過工程相對路徑讀取(包內)文件,注意不以「/」開頭
*/
publicstaticvoidreadTextA_ByProjectRelativePath(){
System.out.println("-----------------readTextA_ByProjectRelativePath---------------------");
Filef=newFile("src/com/lavasoft/res/a.txt");
Stringa=file2String(f,"GBK");
System.out.println(a);
}

/**
*通過工程相對路徑讀取(包外)文件,注意不以「/」開頭
*/
publicstaticvoidreadTextB_ByProjectRelativePath(){
System.out.println("-----------------readTextB_ByProjectRelativePath---------------------");
Filef=newFile("doc/b.txt");
Stringb=file2String(f,"GBK");
System.out.println(b);
}


/**
*通過CLASSPATH讀取包內文件,注意以「/」開頭
*/
publicstaticvoidreadTextA_ByClassPath(){
System.out.println("-----------------readTextA_ByClassPath---------------------");
InputStreamin=ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");
Stringa=stream2String(in,"GBK");
System.out.println(a);
}

/**
*文件轉換為字元串
*
*@paramf文件
*@paramcharset文件的字元集
*@return文件內容
*/
publicstaticStringfile2String(Filef,Stringcharset){
Stringresult=null;
try{
result=stream2String(newFileInputStream(f),charset);
}catch(FileNotFoundExceptione){
e.printStackTrace();
}
returnresult;
}

/**
*文件轉換為字元串
*
*@paramin位元組流
*@paramcharset文件的字元集
*@return文件內容
*/
(InputStreamin,Stringcharset){
StringBuffersb=newStringBuffer();
try{
Readerr=newInputStreamReader(in,charset);
intlength=0;
for(char[]c=newchar[1024];(length=r.read(c))!=-1;){
sb.append(c,0,length);
}
r.close();
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
returnsb.toString();
}
}

Ⅱ 在java中怎麼獲得,本文件的路徑

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

publicclassPathTest
{
publicstaticvoidmain(String[]args)
漏櫻{
Filefile=newFile(".\src\");
System.out.println(file.getAbsolutePath());
try
{
System.out.println(file.getCanonicalPath());
}catch(IOExceptione)
{
e.printStackTrace();
}
}
}

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

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

G:xhuojkonw.src
G:xhuojkonwsrc

Ⅲ java項目中文件的路徑

java項目中文件的路徑-方法大全

一、 相對路徑的獲得

說明:相對路徑(即不寫明時候到底相對誰)均可通過以下方式獲得(不論是一般的java項目還是web項目)

System.getProperty("user.dir");

上述相對路徑中,java項目中的文件是相對於項目的根目錄web項目中的文件路徑視不同的web伺服器不同而不同(tomcat是相對於tomcat安裝目錄in)

二 類載入目錄的獲得(即當運行時某一類時獲得其裝載目錄)
1.1)通用的方法一(不論是一般的java項目還是web項目,先定位到能看到包路徑的第一級目錄)

InputStreamis=TestAction.class.getClassLoader().getResourceAsStream("test.txt");(test.txt文件的路徑為 項目名src est.txt;類TestPath所在包的第一級目錄位於src目錄下)

三 web項目根目錄的獲得(發布之後)
1 從servlet出發

可建立一個servlet在其的init方法中寫入如下語句(沒有請求的話會拋空指針導常)

ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/"); (關鍵)
結果形如:F: omcat-6.0.36webapps est(test為項目名字)

如果是調用了s1.getRealPath("")則輸出F: omcat-6.0.36webapps est(少了一個"")

2 從httpServletRequest出發(沒有請求的話會拋空指針導常)

String path=request.getSession().getServletContext().getRealPath("/");

結果形如:F: omcat-6.0.36webapps est

四 classpath的獲取(在Eclipse中為獲得src或者classes目錄的路徑),放在監聽器,可以窗口啟動獲取路徑

方法一Thread.currentThread().getContextClassLoader().getResource("").getPath()

String path = Thread.currentThread().getContextClassLoader()

.getResource("").getPath();

System.out.println("path========"+ path);輸出:path========/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/


方法二JdomParse.class.getClassLoader().getResource("").getPath()(JdomParse為src某一個包中的類,下同)

eg:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);

輸出:JdomParse.class.getClassLoader().getResource-/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/

另外,如果想把文件放在某一包中,則可以 通過以下方式獲得到文件(先定位到該包的最後一級目錄)

eg String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);

輸出:JdomParse.class.getResource--/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/

(JdomParse為src目錄下jdom包中的類)

四 屬性文件的讀取:

方法 一

InputStream in = lnewBufferedInputStream(newFileInputStream(name));

Properties p =newProperties();p.load(in);

注意路徑的問題,做執行之後就可以調用p.getProperty("name")得到對應屬性的值

方法二

Locale locale =Locale.getDefault();
ResourceBundle localResource = ResourceBundle.getBundle("test/propertiesTest",locale);
String value = localResource.getString("test");
System.out.println("ResourceBundle: " + value);

工程src目錄下propertiesTest.properties(名字後綴必須為properties)文件內容如下:

test=hello word

不通過Servlet獲取路徑

第一種實現

Java代碼

URL url = ClassLoader.getSystemClassLoader().getResource("./");

File file =newFile(url.getPath());

File parentFile =newFile(file.getParent());

System.out.println("webRoot:"+parentFile.getParent());

第二種實現
首先寫一個接聽類 (推薦使用,容器啟動時就執行,不會拋空指針異常,適合做定時器任務來刪除伺服器文件的路徑)

Java代碼:

package com.chinacreator.report.listener;

import javax.servlet.ServletContext;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

/**

* @authorxiaoqun.yi

*/

public class PathListener {

private staticServletContext servletContext;

public voidcontextDestroyed(ServletContextEvent sce) {

this.servletContext= sce.getServletContext();

System.out.println("path=======:"+servletContext.getRealPath("/"));

}

public voidcontextInitialized(ServletContextEvent arg0) {

}

}


在web.xml中加入如下配置

Java代碼 :

<listener>

<listener-class>com.chinacreator.report.listener.PathListener</listener-class>

</listener>

五、Java中的getResourceAsStream有以下幾種:
1. Class.getResourceAsStream(String path) : path 不以』/'開頭時默認是從此類所在的包下取資源,以』/'開頭則是從ClassPath根下獲取。其只是通過path構造一個絕對路徑,最終還是由 ClassLoader(類載入器)(獲取資源)

2. Class.getClassLoader.getResourceAsStream(String path) :默認則是從ClassPath根下獲取,path不能以』/'開頭,最終是由ClassLoader獲取資源。

3. ServletContext. getResourceAsStream(String path):默認從WebAPP根目錄下取資源,Tomcat下path是否以』/'開頭無所謂,當然這和具體的容器實現有關。

4. Jsp下的application內置對象就是上面的ServletContext的一種實現。

其次,getResourceAsStream 用法大致有以下幾種:

第一: 要載入的文件和.class文件在同一目錄下,例如:com.x.y 下有類me.class ,同時有資源文件myfile.xml

那麼,應該有如下代碼:

me.class.getResourceAsStream("myfile.xml");

第二:在me.class目錄的子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.y.file 目錄下有資源文件myfile.xml

那麼,應該有如下代碼:

me.class.getResourceAsStream("file/myfile.xml");

第三:不在me.class目錄下,也不在子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.file 目錄下有資源文件myfile.xml

那麼,應該有如下代碼:

me.class.getResourceAsStream("/com/x/file/myfile.xml");

總結一下,可能只是兩種寫法

第一:前面有 「 / 」

「 / 」代表了工程的根目錄,例如工程名叫做myproject,「 / 」代表了myproject

me.class.getResourceAsStream("/com/x/file/myfile.xml");

第二:前面沒有 「 / 」

代表當前類的目錄

me.class.getResourceAsStream("myfile.xml");

me.class.getResourceAsStream("file/myfile.xml");

Ⅳ java怎樣獲取當前目錄路徑

很多朋友都想知道java如何獲取當前目錄路徑?下面就一起來了解一下吧~

1、利用System.getProperty()函數獲取當前路徑:
System.out.println(System.getProperty("user.dir"));//user.dir指定了當前的路徑
2、使用File提供的函數獲取當前路徑:
File directory = new File("");//設定為當前文件夾 try{ System.out.println(directory.getCanonicalPath());//獲取標準的路徑 System.out.println(directory.getAbsolutePath());//獲取絕對路徑 }catch(Exceptin e){} File.getCanonicalPath()和File.getAbsolutePath()大約只是對於new File(".")和new File("..")兩種路徑有所區別。 # 對於getCanonicalPath()函數,「."就表示當前的戚物尺文件夾,而」..「則表示當前文件夾的上一級文件夾 # 對於getAbsolutePath()函數,則不管」.」、「..」,返回當前的路徑加上你在new File()時設定的路徑 # 至於getPath()函數,得到的只是你在new File()時設定的路徑高高 比如當前的路徑為 C:/test : File directory = new File("abc"); directory.getCanonicalPath(); //得螞友到的是C:/test/abc directory.getAbsolutePath(); //得到的是C:/test/abc direcotry.getPath(); //得到的是abc File directory = new File("."); directory.getCanonicalPath(); //得到的是C:/test directory.getAbsolutePath(); //得到的是C:/test/. direcotry.getPath(); //得到的是. File directory = new File(".."); directory.getCanonicalPath(); //得到的是C:/ directory.getAbsolutePath(); //得到的是C:/test/.. direcotry.getPath(); //得到的是.. 另外:System.getProperty()中的字元串參數如下: System.getProperty()參數大全 # java.version Java Runtime Environment version # java.vendor Java Runtime Environment vendor # java.vendor.url Java vendor URL # java.home Java installation directory # java.vm.specification.version Java Virtual Machine specification version # java.vm.specification.vendor Java Virtual Machine specification vendor # java.vm.specification.name Java Virtual Machine specification name # java.vm.version Java Virtual Machine implementation version # java.vm.vendor Java Virtual Machine implementation vendor # java.vm.name Java Virtual Machine implementation name # java.specification.version Java Runtime Environment specification version # java.specification.vendor Java Runtime Environment specification vendor # java.specification.name Java Runtime Environment specification name # java.class.version Java class format version number # java.class.path Java class path # java.library.path List of paths to search when loading libraries # java.io.tmpdir Default temp file path # java.compiler Name of JIT compiler to use # java.ext.dirs Path of extension directory or directories # os.name Operating system name # os.arch Operating system architecture # os.version Operating system version # file.separator File separator ("/" on UNIX) # path.separator Path separator (":" on UNIX) # line.separator Line separator ("/n" on UNIX) # user.name User』s account name # user.home User』s home directory # user.dir User』s current working directory
JAVA中獲取路徑 關鍵字: java中獲取路徑

1、jsp中取得路徑:

以工程名為TEST為例:
(1)得到包含工程名的當前頁面全路徑:request.getRequestURI() 結果:/TEST/test.jsp (2)得到工程名:request.getContextPath() 結果:/TEST (3)得到當前頁面所在目錄下全名稱:request.getServletPath() 結果:如果頁面在jsp目錄下 /TEST/jsp/test.jsp (4)得到頁面所在伺服器的全路徑:application.getRealPath("頁面.jsp") 結果:D:/resin/webapps/TEST/test.jsp (5)得到頁面所在伺服器的絕對路徑:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent(); 結果:D:/resin/webapps/TEST
2、在類中取得路徑: (1)類的絕對路徑:Class.class.getClass().getResource("/").getPath() 結果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ (2)得到工程的路徑:System.getProperty("user.dir") 結果:D:/TEST

閱讀全文

與java打開文件夾路徑相關的資料

熱點內容
海綿寶寶大電影免費中文版 瀏覽:275
愛國戰爭片免費觀看 瀏覽:887
三位數碼管單片機是如何工作的 瀏覽:728
免費看不下載老電影院 瀏覽:511
啄木鳥影業都有哪些作品 瀏覽:824
在電腦上怎麼把pdf保存成圖片 瀏覽:767
末段愛情廣播劇是哪個app可以聽 瀏覽:322
e片免費看 瀏覽:361
成龍教外國小孩功夫電影叫什麼 瀏覽:482
disk命令分區 瀏覽:912
丁巴度愛與激情 瀏覽:264
韓國野戰電影 瀏覽:462
法國chouchou在線觀看 瀏覽:700
linux歷史命令查看 瀏覽:964
堅果安卓11怎麼樣 瀏覽:497
imovie壓縮 瀏覽:453
古裝鬼電影大全 瀏覽:457
韓電影app 瀏覽:888
何炅參加密室逃脫視頻 瀏覽:897
日本生孩子電影 瀏覽:262