File file=new File("Word.txt");這就是定義變量"file"相對路徑的方法,該相對路徑的目標(biāo)文件為“Word.txt”
創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、寶塔網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為寶塔等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
test
|
src
|
t090417
|
test.properties
Read.java
test.properties:
TEST=test
Read.java:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
public class Read {
public static String TEST ;
private static Properties loadPropertyFile() throws FileNotFoundException,IOException{
Properties properties = new Properties() ;
FileInputStream fs = new FileInputStream("src/t090417/test.properties");
properties.load(fs);
return properties ;
}
public static void loadProperty(){
try{
Properties properties = loadPropertyFile();
TEST = properties.getProperty("TEST");
System.out.println("read from properties: "+TEST);
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
loadProperty();
}
}
其中用的就是相對路徑!
一個例子,如果有一個Test文件夾里面有test.java和hello.txt.如果你想用test.java操作hello.txt
只要在test.java中這樣寫File file=new File("hello.txt");//這樣就是相對路徑。如果文件結(jié)構(gòu)是
Test文件夾
... |------test.java
... |------hello.txt
... |------source文件夾
................. |---------world.txt
如果想在test.java中操作world.txt。只要這樣寫File file=new File("source/world.txt");
另外,在web開發(fā)中/代表項目文件夾根目錄,當(dāng)然也有可能代替webapps,區(qū)分方法是:如果/開頭的uri是給瀏覽器解析則/代表webapps,如果是給服務(wù)器后臺解析,則代表項目文件
1、在Java開發(fā)工具的project中使用相對路徑
在project中,相對路徑的根目錄是project的根文件夾,在此就是repathtest文件夾了。創(chuàng)建文件的寫法是:
File?f?=?new?File("src/com/lavasoft/res/a.txt");
File?f?=?new?File("doc/b.txt");
注意:路徑不以“/”開頭;
脫離了IDE環(huán)境,這個寫法就是錯誤的,也并非每個IDE都如此。
2、通過CLASSPATH讀取包內(nèi)文件
讀取包內(nèi)文件,使用的路徑一定是相對的classpath路徑,比如a,位于包內(nèi),此時可以創(chuàng)建讀取a的字節(jié)流:
InputStream?in?=?ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");
有了字節(jié)流,就能讀取到文件內(nèi)容了。
注意:這里必須以“/”開頭;
3、看看完整的java中用相對路徑打開文件測試代碼:
package?com.lavasoft.test;?
import?java.io.*;?
/**?
*?Java讀取相對路徑的文件?
*?
*/?
public?class?ReadFile?{?
public?static?void?main(String[]?args)?{?
readTextA_ByClassPath();?
readTextA_ByProjectRelativePath();?
readTextB_ByProjectRelativePath();?
}?
/**?
*?通過工程相對路徑讀?。ò鼉?nèi))文件,注意不以“/”開頭?
*/?
public?static?void?readTextA_ByProjectRelativePath()?{?
System.out.println("-----------------readTextA_ByProjectRelativePath---------------------");?
File?f?=?new?File("src/com/lavasoft/res/a.txt");?
String?a?=?file2String(f,?"GBK");?
System.out.println(a);?
}?
/**?
*?通過工程相對路徑讀?。ò猓┪募⒁獠灰浴?”開頭?
*/?
public?static?void?readTextB_ByProjectRelativePath()?{?
System.out.println("-----------------readTextB_ByProjectRelativePath---------------------");?
File?f?=?new?File("doc/b.txt");?
String?b?=?file2String(f,?"GBK");?
System.out.println(b);?
}?
/**?
*?通過CLASSPATH讀取包內(nèi)文件,注意以“/”開頭?
*/?
public?static?void?readTextA_ByClassPath()?{?
System.out.println("-----------------readTextA_ByClassPath---------------------");?
InputStream?in?=?ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");?
String?a?=?stream2String(in,?"GBK");?
System.out.println(a);?
}?
/**?
*?文件轉(zhuǎn)換為字符串?
*?
*?@param?f?????????????文件?
*?@param?charset?文件的字符集?
*?@return?文件內(nèi)容?
*/?
public?static?String?file2String(File?f,?String?charset)?{?
String?result?=?null;?
try?{?
result?=?stream2String(new?FileInputStream(f),?charset);?
}?catch?(FileNotFoundException?e)?{?
e.printStackTrace();?
}?
return?result;?
}?
/**?
*?文件轉(zhuǎn)換為字符串?
*?
*?@param?in????????????字節(jié)流?
*?@param?charset?文件的字符集?
*?@return?文件內(nèi)容?
*/?
public?static?String?stream2String(InputStream?in,?String?charset)?{?
StringBuffer?sb?=?new?StringBuffer();?
try?{?
Reader?r?=?new?InputStreamReader(in,?charset);?
int?length?=?0;?
for?(char[]?c?=?new?char[1024];?(length?=?r.read(c))?!=?-1;)?{?
sb.append(c,?0,?length);?
}?
r.close();?
}?catch?(UnsupportedEncodingException?e)?{?
e.printStackTrace();?
}?catch?(FileNotFoundException?e)?{?
e.printStackTrace();?
}?catch?(IOException?e)?{?
e.printStackTrace();?
}?
return?sb.toString();?
}?
}
你這個pro文件夾及里面的xml文件是不是只放到webroot下面,src下面沒有?
如果是這樣,你每次編譯到tomcat服務(wù)器里的項目該文件夾和xml就不存在,不知道是不是這個問題,如果不是,上面的回答也解決不了問題,可以給我發(fā)消息,希望有幫到你,呵呵~