0

嘿伙计们,我的一个程序的一个方面是通过 OpenDialog javax 命令打开 .txt 文件。我的缓冲阅读器在我的开发环境中运行良好,但是当我尝试将项目导出到 .jar 时,我的程序似乎没有加载数据。我仍然可以访问 openDialog 子视图、选择文件等,但文件不会加载,而且我不确定如何调试 jar,所以我不确定错误是缓冲读取器还是来自对话框本身。就像我说的那样,当我编译和运行 BLueJ 时程序运行良好,但由于某种原因,当我创建 .jar 时,它在 opendialog 之后停止。任何人都熟悉这种类型的错误?

为了解释,该方法从已经洗牌的文本文件中添加一副牌。Card 被声明为 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 + "'");  
        }
4

1 回答 1

0

这是你的问题:

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

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

试试这个...

File selectedFile = chooser.getSelectedFile();

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

FileReader reader = new FileReader(selectedFile);
于 2014-04-25T17:11:24.520 回答