【问题标题】:Check for a file before the program loads在程序加载之前检查文件
【发布时间】:2014-12-09 23:16:13
【问题描述】:

这个想法是创建一个从文本文件加载所需信息的主屏幕。应用程序查找文件,如果找不到,它会询问文件路径。

到目前为止我有这个代码

    BufferedReader br;

    try{
        br = new BufferedReader(new FileReader(principal));
    }catch(FileNotFoundException e){
        while(!principal.contains(".INICIO")){
            JOptionPane.showMessageDialog(this, "Not a valid file paht", "error",JOptionPane.ERROR_MESSAGE);
            JFileChooser archivo = new JFileChooser("Seleccione el archivo principal");
            principal = archivo.getSelectedFile().getPath();
        }
    }

之后,我希望程序使用新的文件路径重试。我的想法是这样的:

   while(condition){
       try{
           br = new BufferedReader(new FileReader(principal));
       }catch(Exception e){
           //some code here
       }
   }

但我不知道“条件”是什么。有什么建议吗?

【问题讨论】:

  • 为什么不使用File#exists
  • 不确定,如果文件不存在,它会自动抛出异常。如果文件确实存在,它甚至不会尝试做任何事情。

标签: java events awt


【解决方案1】:

这归结为许多工作流程。如果您只想知道用户选择的文件是否存在,您可以执行类似...

JFileChooser archivo = new JFileChooser("Seleccione el archivo principal");
int action = archivo.showOpenDialog(null);
File principal = archivo.getSelectedFile();
while (action != JFileChooser.CACNEL_OPTION && !principal.exists()) {
    JOptionPane.showMessageDialog(this, "Not a valid file paht", "error",JOptionPane.ERROR_MESSAGE);
    action = archivo.showOpenDialog(null);
    principal = archivo.getSelectedFile();
}

if (!action == CACNEL_OPTION) {
    // File reference should now be valid, open and read away...
}

现在,如果您还想知道文件是否有效,则需要阅读它。关于这一点,我将创建一个可以提示用户输入File 的方法,如果他们选择Cancel,它可以返回null,这样您可以更好地控制流程...

【讨论】:

  • 这似乎做到了。谢谢。
猜你喜欢
  • 2019-03-07
  • 1970-01-01
  • 1970-01-01
  • 2022-10-22
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
相关资源
最近更新 更多