嘿,我的程序的一个方面是通过OpenDialog javax命令打开.txt文件。我的bufferedreader在我的开发环境中工作正常但是当我尝试将项目导出到.jar时,我的程序似乎没有加载数据。我仍然可以访问openDialog子视图,选择文件等,但文件将无法加载,我不知道如何调试jar,所以我不确定错误是缓冲读取器还是对话框本身。就像我说的那样,当我编译并运行BLueJ时,程序工作正常,但出于某种原因,当我创建.jar时,它会在opendialog之后停止。有人熟悉这种错误吗?
为了便于说明,该方法从已经洗牌的文本文件中添加了一副牌。 卡被声明为ArrayList
card.clear();
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
String filename = chooser.getSelectedFile().getName();
try
{
FileReader reader = new FileReader(filename);
BufferedReader breader = new BufferedReader(reader);
String line;
while ((line = breader.readLine()) != null)
{
card.add(line);
displayField.append("\nAdded a " + line);
}
displayField.append("\nDeck Size: " + card.size());
breader.close();
} catch (FileNotFoundException e)
{
System.err.println("FileNotFoundException: " + e.getMessage());
} catch(IOException ex)
{
System.out.println(
"Error reading file '"
+ filename + "'");
}
答案 0 :(得分:0)
这是你的问题:
String filename = chooser.getSelectedFile().getName();
try
{
FileReader reader = new FileReader(filename);
您需要指定路径。您将获取所选文件的文件名,但忽略该路径。在这种情况下,FileReader
将使用进程的当前工作目录作为文件路径。
试试这个......
File selectedFile = chooser.getSelectedFile();
...那么你可以......
FileReader reader = new FileReader(selectedFile);