Reading a File into a Byte Array
This example implements a method that reads the entire contents of a
file into a byte array.
See also Reading Text from a File.
// Returns the contents of the file in a byte array.
public static byte[] getBytesFromFile(File file) throws IOException {
InputStream is = new FileInputStream(file);
// Get the size of the file
long length = file.length();
// You cannot create an array using a long type.
// It needs to be an int type.
// Before converting to an int type, check
// to ensure that file is not larger than Integer.MAX_VALUE.
if (length > Integer.MAX_VALUE) {
// File is too large
}
// Create the byte array to hold the data
byte[] bytes = new byte[(int)length];
// Read in the bytes
int offset = 0;
int numRead = 0;
while (offset < bytes.length
&& (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}
// Ensure all the bytes have been read in
if (offset < bytes.length) {
throw new IOException("Could not completely read file "+file.getName());
}
// Close the input stream and return bytes
is.close();
return bytes;
}
Thank you very much !!!
It doesn't work for me . I am using Eclipse. Now i am writting the following:
private static File fl=new File("bin/ccd.txt");
and then in main:
byte[] serObj=getBytesFromFile(fl);
i am getting unhandled exceptopn type IOException "
and this is despite of the fact that the file exists
require few more Examples
It works fine - thank you.
BTW.
You can modify while condition in this manner:
while (offset < bytes.length
&& (numRead = is.read(bytes, offset, Math.min(bytes.length - offset, 512*1024))) >= 0) {
This will prevent OutOfMemory error if you are reading big files.
I don't find javax.microedition.io.file.FileConnection in J2ME :(
It worked for me....Thanks for post
Thanks to all of them for making startups possible. And, most importantly ,So, there you have it. As fun as it has been to joke about www.seoi8.com .