我想读取一个csv文件。对于这一点,我发现CSVReader我用这样的:FileReader csv:FileNotFoundException:该文件不能作为文件描述符打开;它可能是压缩的
List myEntries = null;
try {
AssetFileDescriptor descriptor = getAssets().openFd("file.csv");
CSVReader csvReader = new CSVReader(new FileReader(descriptor.getFileDescriptor()), ',', '"');
myEntries = csvReader.readAll();
csvReader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
但我得到这个错误: FileNotFoundException异常:该文件无法打开的文件描述符;它可能是压缩的。
我的文件位于资产文件夹中。
我已经看到此线程:java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed 它根本没有帮助我。
所以,我必须做错什么,但是什么? 我应该把我的文件放在另一个文件夹上并用另一种方法打开它吗?
您是否尝试过在引用帖子中提到的建议(例如,手动将文件添加到apk文件夹中)?此外,发布异常的完整堆栈跟踪不会受到影响。 – comodoro 2012-07-26 21:31:47
你说得对,它的效果很好。顺便说一句,因为我们正在谈论压缩......我有大约一百个xml文件(150MB),这些文件被压缩,因为我的apk文件只有4.5MB。 由于它们是压缩的,我猜应用程序需要更多时间来访问这些文件中的数据,对吗? 然后,如果将这些文件放在SD卡上,读取速度会更快吗? – lost17 2012-07-27 00:18:33
这取决于您的应用程序访问文件的方式。我可以想象有什么缓存,所以不能保证有很大的不同。我想知道的唯一方法就是尝试一下。 – comodoro 2012-07-27 08:14:03