【问题标题】:.Jar won't finish my OpenDialog Command.Jar 不会完成我的 OpenDialog 命令
【发布时间】:2014-04-24 20:44:23
【问题描述】:

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

【问题讨论】:

  • 能贴出代码吗?
  • OP 已被编辑。谢谢

标签: java swing bufferedreader fileopendialog


【解决方案1】:

这是你的问题:

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

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

试试这个...

File selectedFile = chooser.getSelectedFile();

...那么你可以...

FileReader reader = new FileReader(selectedFile);

【讨论】:

  • 是的 100%。我认为因为它跟踪了 BlueJ 中的路径,所以文件名字符串将包含该路径,但显然不是。给你的道具
猜你喜欢
  • 2020-12-05
  • 2013-01-02
  • 1970-01-01
  • 2020-06-10
  • 2011-08-06
  • 1970-01-01
  • 2013-05-18
  • 2021-05-26
  • 2021-06-09
相关资源
最近更新 更多