所以我2009年的新年決議是學習Java。我最近收購了「Java for Dummies」,並通過使用Eclipse重寫本書中的示例代碼。無論如何,書中使用相對路徑的每個示例似乎都沒有讀取它應該讀取的.txt文件。相對文件路徑在Eclipse中如何工作?
下面是示例代碼:
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.GridLayout;
class TeamFrame extends JFrame {
public TeamFrame() throws IOException {
PlayerPlus player;
Scanner myScanner = new Scanner(new File("Hankees.txt"));
for (int num = 1; num <= 9; num++) {
player = new PlayerPlus(myScanner.nextLine(), myScanner.nextDouble());
myScanner.nextLine();
addPlayerInfo(player);
}
add(new JLabel());
add(new JLabel(" ------"));
add(new JLabel("Team Batting Aberage:"));
add(new JLabel(PlayerPlus.findTeamAverageString()));
setTitle("The Hankees");
setLayout(new GridLayout(11,2));
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
}
void addPlayerInfo(PlayerPlus player) {
add(new JLabel(player.getName()));
add(new JLabel(player.getAverageString()));
}
}
而且你可以在下面的屏幕截圖我已經包含了這個文件中看到。
圖像不再
另外,我還證實,當我構建Hankees.txt的副本放置在bin文件夾與編譯後的class文件的應用程序。
最後,如果我將第12行更改爲以下內容並將Hankees.txt放在我的C:\驅動器的根目錄中,則該程序編譯並運行正常。
Scanner myScanner = new Scanner(new File("C:\\Hankees.txt"));
所以基本上,我的問題是我做錯了什麼?或者Eclipse是以某種方式對此負責的?
感謝您的幫助!
tangential評論:我很抱歉任何書中標題中有「傻瓜」的書。試試Bruce Eckel的「Thinking in Java」或者Niemeyer&Knudsen的「Learning Java」,兩者都非常好。 – 2009-01-12 23:45:35
上次我檢查了Java for Dummies,它是基於Java 1.2的。他們最近是否更新過? – 2009-01-13 21:20:49