我正在将我们的应用程序从使用外部文件(使用文件名访问)转换为内部文件(使用FileInputStream
和FileOutputStream
对象访问)。但是,我遇到了一个相当奇怪的错误:在 s 上finalize()
,FileInputStream
s 有时会抛出NullPointerException
.
logcat 告诉我:
Uncaught exception thrown by finalizer (will be discarded):
java.lang.NullPointerException:
at java.io.FileInputStream.close(FileInputStream.java:133)
at java.io.FileInputStream.finalize(FileInputStream.java:156)
at dalvik.system.NativeStart.run(Native Method)
查看docjar.com上的FileInputStream 源,这似乎可能是由 null 引起的FileDescriptor
;但是,我希望能够将错误的文件名传递给我的FileInputStream
构造函数并捕获FileNotFoundException
,因为这是我对 Android 内部系统所能做的一切(没有根据 中的每个条目测量文件名Context#fileList()
)。有没有办法解决这个问题?
注意显然终结器中的异常不会导致我任何实际的崩溃,但我觉得我应该尝试整理一下。