I'm running a program which needs random access to a very large file (approximately 151 gigabytes). 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With