Java FileWriter要使用什么异常

Java FileWriter要使用什么异常,java,file,exception,filewriter,writer,Java,File,Exception,Filewriter,Writer,我有一个程序,允许用户将信息写入文件。它不会覆盖原始文件中的所有内容,而是添加到原始文件中。问题是如果用户没有输入足够的信息,程序就会崩溃 文本文件中的每一行看起来如下所示: info 1, Info 2, info 3, info 4, info 5, info 6, info 7 不要抛出异常。验证用户输入并仅在有效时将其写入文件 但我如何验证它呢?这就是我一直坚持的 例如,使用String.split(“,”,它将为您提供一个String[],您可以在上面检查String[].length

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

文本文件中的每一行看起来如下所示:

info 1, Info 2, info 3, info 4, info 5, info 6, info 7
不要抛出异常。验证用户输入并仅在有效时将其写入文件


但我如何验证它呢?这就是我一直坚持的

例如,使用
String.split(“,”
,它将为您提供一个
String[]
,您可以在上面检查
String[].length==7

编辑:只是为了确保这不是问题的完整解决方案,而是一个良好的起点。我非常同意所有其他评论/答案,抛出一个例外是过分的

编辑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

catch(Exception e){JOptionPane.showMessageDialog(这是“所需的更多信息”);}
将处理所有类型的异常,而不管发生的异常性质如何……在将数据写入文件之前,请先验证数据。如果数据的格式不正确,则显示一个对话框,让他们再次尝试获得正确的格式。但我如何验证它?这就是我一直坚持的。我需要抛出一个异常,因为我正在使用fileWriter和fileBuffer。我如何验证输入?@rjdelight:您能解释一下吗?你的评论毫无意义。使用
fileWriter
fileBuffer
(无论它们是什么)意味着您必须抛出异常?当我使用它们时,它告诉我需要一次尝试catch@rjedlight:这只意味着您使用的方法可能引发一些异常,并且您的代码必须能够在异常发生时处理它们。这与您自己的验证代码无关。这些异常与低级I/O问题有关!为了验证信息,我不需要将if语句包含在catch中吗?
if
语句与
catch
块无关。当可能发生某种意外行为时,Try/catch块非常有用,在您的情况下,可能是文件不可写,或者如果您有多个线程或其他内容,它可能会尝试并发编辑。有关简要示例,请参见我的编辑。
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);