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; }

Comments

13 Feb 2010 - 7:21am by NKM (not verified)

Thank you very much !!!

28 Apr 2010 - 3:59am by Michael (not verified)

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

17 May 2010 - 1:24am by Anonymous (not verified)

require few more Examples

21 May 2010 - 6:39am by Jan Vondrous (not verified)

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.

8 Jun 2010 - 9:27pm by Hang (not verified)

I don't find javax.microedition.io.file.FileConnection in J2ME :(

8 Jul 2010 - 4:52am by Ramesh Sukka (not verified)

It worked for me....Thanks for post

31 Aug 2010 - 7:17pm by seoi8 (not verified)

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 .

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.