1ãå¨Javaå¼åå·¥å
·çprojectä¸ä½¿ç¨ç¸å¯¹è·¯å¾
å¨projectä¸ï¼ç¸å¯¹è·¯å¾çæ ¹ç®å½æ¯projectçæ ¹æ件夹ï¼å¨æ¤å°±æ¯repathtestæ件夹äºãå建æ件çåæ³æ¯ï¼
File f = new File("src/com/lavasoft/res/a.txt");
File f = new File("doc/b.txt");
注æï¼è·¯å¾ä¸ä»¥â/âå¼å¤´ï¼
è±ç¦»äºIDEç¯å¢ï¼è¿ä¸ªåæ³å°±æ¯é误çï¼ä¹å¹¶éæ¯ä¸ªIDEé½å¦æ¤ã
2ãéè¿CLASSPATH读åå
å
æ件
读åå
å
æ件ï¼ä½¿ç¨çè·¯å¾ä¸å®æ¯ç¸å¯¹çclasspathè·¯å¾ï¼æ¯å¦aï¼ä½äºå
å
ï¼æ¤æ¶å¯ä»¥å建读åaçåèæµï¼
InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");
æäºåèæµï¼å°±è½è¯»åå°æ件å
容äºã
注æï¼è¿éå¿
须以â/âå¼å¤´ï¼
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();
}
/**
* éè¿å·¥ç¨ç¸å¯¹è·¯å¾è¯»åï¼å
å
ï¼æ件ï¼æ³¨æä¸ä»¥â/âå¼å¤´
*/
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读åå
å
æ件ï¼æ³¨æ以â/âå¼å¤´
*/
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);
}
/**
* æ件转æ¢ä¸ºå符串
*
* @param f æ件
* @param charset æ件çå符é
* @return æ件å
容
*/
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;
}
/**
* æ件转æ¢ä¸ºå符串
*
* @param in åèæµ
* @param charset æ件çå符é
* @return æ件å
容
*/
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();
}
}