RandomAccessFile寻求异常

时间:2013-07-21 00:44:13

标签: java android exception sd-card random-access

我想在 SDCARD (外部存储)中的文件中查找。 我以只读模式打开它。

in = new RandomAccessFile(filePath, "r");

从这个文件流中读取的所有内容都可以,直到我想在文件中搜索。

long seekPosition = 100;//sample value
in.seek(seekPosition);

当然,搜索位置不大于文件大小而不是负数。 但是我面临一个例外,没有任何细节。 这是异常追踪:

java.io.IOException的
在java.io.RandomAccessFile.openCheck(RandomAccessFile.java:258)
在java.io.RandomAccessFile.seek(RandomAccessFile.java:648)
....

问题是为什么会发生这种情况,我该如何解决?
它是否与寻找共享存储中的文件或在此过程中遗漏了什么相关?
我主要关注的是以随机访问方式访问文件字节。

1 个答案:

答案 0 :(得分:1)

(私有)RandomAccessFile.openCheck()方法(在Harvest / Android中)只是检查文件当前是否打开。如果它抛出IOException,则表示您已关闭RandomAccessFile对象。

课程:如果你得到一个你不期望/不理解的例外:

  1. 阅读异常消息 1
  2. 查看堆栈跟踪以查看抛出异常的位置。
  3. 找到源代码。 (谷歌通常为我工作......)
  4. 查看源代码以了解它被抛出的原因。

  5. 1 - 在这种情况下没有帮助,因为出于某些奇怪的原因,他们抛出IOException而没有消息。我认为这是一个BUG。

    参考: