某些時(shí)候,我們希望讀寫某個(gè)包下面的文件,例如包c(diǎn)om.coderdream.chapter20.flyweight.sample下的txt文件,但我們并不想把文件寫成絕對(duì)路徑。
解決辦法:
1、我們可以通過新建一個(gè)空文件,然后的到當(dāng)前文件的絕對(duì)路徑;
2、然后用這個(gè)路徑+文件夾名來新建一個(gè)BufferedReader。
這樣就可以順利讀取包中的文件了。
1 /**
2 * 構(gòu)造函數(shù)
3 *
4 * @param charname
5 */
6 public BigChar(char charname) {
7 this.charname = charname;
8 try {
9 File file = new File("");
10 String s = file.getAbsolutePath();
11 BufferedReader reader = new BufferedReader(new FileReader(s
12 + "\\src\\com\\coderdream\\chapter20"
13 + "\\flyweight\\sample\\big" + charname + ".txt"));
14 String line;
15 StringBuffer buf = new StringBuffer();
16 while ((line = reader.readLine()) != null) {
17 buf.append(line);
18 buf.append("\n");
19 }
20
21 reader.close();
22 this.fontdata = buf.toString();
23 } catch (IOException e) {
24 this.fontdata = charname + "?";
25 }
26 }
2 * 構(gòu)造函數(shù)
3 *
4 * @param charname
5 */
6 public BigChar(char charname) {
7 this.charname = charname;
8 try {
9 File file = new File("");
10 String s = file.getAbsolutePath();
11 BufferedReader reader = new BufferedReader(new FileReader(s
12 + "\\src\\com\\coderdream\\chapter20"
13 + "\\flyweight\\sample\\big" + charname + ".txt"));
14 String line;
15 StringBuffer buf = new StringBuffer();
16 while ((line = reader.readLine()) != null) {
17 buf.append(line);
18 buf.append("\n");
19 }
20
21 reader.close();
22 this.fontdata = buf.toString();
23 } catch (IOException e) {
24 this.fontdata = charname + "?";
25 }
26 }