RandomAccessFile readFully EOF异常

时间:2017-03-30 06:00:22

标签: java

我使用RandomAccessFile类和read或readFully方法获得EOF异常。 我试图读取的数据长度为1,偏移量为0,因此我不希望收到EOF异常。我看到文件已成功创建并写入其中。

这是我的代码:

int len = 1;
int offset = 0;
byte[] data = new byte[512];
createFile();
readFile(offset, len, data);

在我的主要:

DECLARE @MAX INT
SELECT @MAX=ISNULL(MAX(Id),0) FROM [TestTable]

DBCC CHECKIDENT ('[TestTable]', RESEED,@MAX)

请有人帮忙找到我在这里缺少的东西吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

在写入文件后,您忘记seek (set the file pointer)回到文件的开头,因此它将尝试从文件末尾读取。哪个会给你恰当的名字EOFException

在阅读之前添加对seek(0L)的调用,以便从文件的开头开始阅读。

int len = 1;
int offset = 0;
byte[] data = new byte[512];
createFile();
pub_f.seek(0L); // <---- set the file pointer back to the start of the file.
readFile(offset, len, data);