方法返回FileNotFoundException
:
String statSource = 'some path';
try {
File file = new File(statSource);
if (!file.exists())
{
System.out.println(file.getPath() + " doesn't exist!");
}
else
{
System.out.println("OK!");
}
// otevření CSV
csv = new CsvReader(statSource, ';', Charset.forName("windows-1250"));
}
起初我得到'OK!'消息,但在最后一行,我得到FileNotFoundException
。文件位于本地硬盘上。
你知道什么是错的吗?
答案 0 :(得分:1)
假设您正在讨论this class,并且您正在使用JDK 7,请帮自己一个忙,并使用它:
final Path csvpath = Paths.get(statSource);
try (
final InputStream in = Files.newInputStream(csvpath);
final CsvReader csv = new CsvReader(in, ';', Charset.forName("windows-1250");
) {
// operate on csv
}
如果文件不存在或其他什么,您至少会得到一个有意义的例外:AccessDeniedException
,NoSuchFileException
等;所有这些都继承了FileSystemException
。
答案 1 :(得分:0)
FileNotFoundException - 如果给定的文件对象不表示 现有的可写常规文件和该名称的新常规文件 无法创建,或者在打开时发生其他错误 创建文件
因此,在以下3个案例中可能会抛出FileNotFoundException
。
因此,请确保您在文件而不是目录上运行,然后尝试使用file.canRead()
(在Windows上不够可靠,请参阅bug)以测试#3。< / p>
答案 2 :(得分:-1)
我认为您只是将文件名提供给csvReader。要读取java中的Files,你必须使用FileReader。
您可以尝试将最后一行更改为
csv = new CsvReader(new FileReader(statSource), ';', Charset.forName("windows-1250"));