Skip to Content
Ivor Horton's Beginning Java™ 2, JDK™ 5th Edition
book

Ivor Horton's Beginning Java™ 2, JDK™ 5th Edition

by Ivor Horton
December 2004
Beginner
1512 pages
43h 39m
English
Wrox
Content preview from Ivor Horton's Beginning Java™ 2, JDK™ 5th Edition

11.4. Reading Binary Data

When you read binary data, you still read bytes from the file, so the process is essentially the same as you used in the previous example. To read a binary file, you create a FileInputStream object and get the FileChannel object from it, and then you read the data into a byte buffer. You could set up a file channel to read the primes.bin file that you created in the previous chapter, like this:

File aFile = new File("C:/Beg Java Stuff/primes.bin");
FileInputStream inFile = null;
try {

  inFile = new FileInputStream(aFile);

} catch(FileNotFoundException e) {
  e.printStackTrace(System.err);
  System.exit(1);
}
FileChannel inChannel = inFile.getChannel();

You have some options for the size of the byte buffer. The number of bytes in the buffer should be a multiple of 8 because a prime value is of type long, but other than that you can make it whatever size you like. You could allocate a buffer to accommodate the number of primes that you want to output to the command line—six values, say. This would make accessing the data very easy since you need to set up a view buffer of type LongBuffer only each time you read from the file. One thing against this is that reading such a small amount of data from the file in each read operation would not be a very efficient way to read the file. Before data transfer can start for a read operation, you have significant delay, usually of the order of several milliseconds, waiting for the disk to rotate until the data that you ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Ivor Horton's Beginning Java®, Java 7 Edition

Ivor Horton's Beginning Java®, Java 7 Edition

Ivor Horton
PURE Java™ 2

PURE Java™ 2

Kenneth Litwak
Just Java™ 2

Just Java™ 2

Peter van der Linden

Publisher Resources

ISBN: 9780764568749Purchase book