我使用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)
请有人帮忙找到我在这里缺少的东西吗?
谢谢!
答案 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);