开发者

java.io.RandomAccessFile Invalid Argument for large files on mac

I'm running a program which needs random access to a very large file (approximately 151 gig开发者_开发百科abytes). I've found that whenever it runs on one of the MacPro machines in the Orchard lab ( details at http://inst.eecs.berkeley.edu/cgi-bin/clients.cgi?choice=6a&string= ), the program tries to read a specific part of the file and crashes with an error from the file system:

java.io.IOException: Invalid argument
    at java.io.RandomAccessFile.readBytes(Native Method)
    at java.io.RandomAccessFile.read(RandomAccessFile.java:322)

I'm just using the RandomAccessFile class.

RandomAccessFile fd;
//...Initialized and already used fd with
//no problems for larger locations as well
//location == 155587178230
//numBytes == 15492560
//off == 0
//arr.length == 15492560
fd.seek(location);
fd.read(arr, off, numBytes);

It happens in the same exact place for the same exact range of bytes every time no matter which of the Orchard lab computers I use.

I've tested this code on DELL computers running Debian Linux and not had this problem.


You should use the linux command "dd" to check if the file is really readable at the given location. I assume the file is on a network drive in the MAC lab, and if you access your copy of the file on the Dell linux workstation you won't get this error because DELLs disks are not broken.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜