在各种情况下都会抛出FileNotFoundException-不仅在文件名无效时,而且在e时也不一定。 G。权限不允许创建或读取文件:
java.io.FileNotFoundException: \\server\share\directory\test.csv (Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at java.io.FileWriter.<init>(FileWriter.java:73)
上面的示例显示了一个德语Windows提示用户名或密码无效。
有没有一种方法可以解析异常消息,以获取更详细的信息,以了解异常发生的确切原因?消息解析的问题是,在不同的区域中,消息会有所不同。
最佳答案
在创建FileOutputStream
之前,请自己检查文件是否存在/具有读写权限。
File test_csv = new File( "\\server\share\directory\test.csv" );
if ( test_csv.exists( ) && test_csv.canWrite( ) )
{
// Create file writer
...
}
else
{
// notify user
...
}
请注意,如果您需要创建新文件,有时您必须检查对目标文件的父文件的读/写权限。
File test_csv = new File( "\\server\share\directory\test.csv" );
File parent_dir = test_csv.getParentFile( )
if ( parent_dir.exists( ) && parent_dir.canWrite( ) )
{
// Create file writer
...
}
else
{
// notify user
...
}
关于java - 检测到java.io.FileNotFoundException的根本原因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1661050/