.Jar不会完成我的OpenDialog Command

时间:2014-04-24 20:44:24

标签: java swing bufferedreader fileopendialog

嘿,我的程序的一个方面是通过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 + "'");  
        }

1 个答案:

答案 0 :(得分:0)

这是你的问题:

String filename = chooser.getSelectedFile().getName();
        try
        {
            FileReader reader = new FileReader(filename);

您需要指定路径。您将获取所选文件的文件名,但忽略该路径。在这种情况下,FileReader将使用进程的当前工作目录作为文件路径。

试试这个......

File selectedFile = chooser.getSelectedFile();

...那么你可以......

FileReader reader = new FileReader(selectedFile);