FileWriter使用什么异常?



我有一个允许用户将信息写入文件的程序。它不会重写原始文件中的所有内容,而是对其进行添加。问题是如果用户没有输入足够的信息,程序就会崩溃。

文本文件中的每一行看起来像这样:

信息1,信息2,信息3,信息4,信息5,信息6,信息7

每行有6个逗号和7条信息。所以,我需要知道使用什么样的异常来防止崩溃,如果说用户只输入4条信息或只使用两个逗号等。有人知道怎么做吗?

下面是我的代码:

private void addDVDButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
    FileWriter fWriter = null;
    BufferedWriter writer = null;
    try {
        fWriter = new FileWriter("info.txt", true);
        writer = new BufferedWriter(fWriter);
        writer.write(JOptionPane.showInputDialog(this, "ADDING INFO"));
        writer.newLine();
        writer.close();
    } catch (Exception e) {
        JOptionPane.showMessageDialog(this,"More information required");
    }
}                        

不要抛出异常。验证用户输入,并仅在有效时将其写入文件。

我该如何验证呢?这就是我被困住的地方。

例如,通过使用String.split(","),它会给你一个String[],你可以检查String[].length == 7是否。

编辑:只是为了确保这不是一个完整的解决方案,你的问题,但一个好的起点。我强烈同意所有其他的评论/答案,抛出一个异常是多余的。

edit 2:让我们假设用户给出了以下字符串作为输入,并且您希望在写入文件之前验证它:

String str = "a1,b2,c3,d4,e5,f6";

如您所见,这个字符串有六个元素和五个逗号,换句话说,它应该给用户一个警告。一种非常简单的检查方法是:

if (str.split(",").length != 7) // checks if the string is comma delimited and has seven pieces of information
    warnUser();   // whatever you want to do to warn user
else 
    writeToFile(str);

请注意,这只是显示了原则,在您的情况下,您可能(也可能会)想要检查其他东西,比如格式,或者您有字母数字文本,没有下划线或其他东西。如果你有很多想要检查的条件,你可以写一个方法validateInput(str),它可以是一系列条件检查,只有在所有条件都检查出来时才返回true

相关内容

  • 没有找到相关文章

最新更新