Mega Code Archive

 
Categories / Java Tutorial / File
 

Reading Mixed Data from a File

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class MainClass {   public static void main(String[] args) {     File aFile = new File("primes.txt");     FileInputStream inFile = null;     try {       inFile = new FileInputStream(aFile);     } catch (FileNotFoundException e) {       e.printStackTrace(System.err);     }     FileChannel inChannel = inFile.getChannel();     try {       ByteBuffer lengthBuf = ByteBuffer.allocate(8);       while (true) {         if (inChannel.read(lengthBuf) == -1){           break;         }         lengthBuf.flip();         int strLength = (int) lengthBuf.getDouble();         ByteBuffer buf = ByteBuffer.allocate(2 * strLength + 8);         if (inChannel.read(buf) == -1) {           break;         }         buf.flip();         byte[] strChars = new byte[2 * strLength];         buf.get(strChars);         System.out.println(strLength);         System.out.println(ByteBuffer.wrap(strChars).asCharBuffer());         System.out.println(buf.getLong());         lengthBuf.clear();       }       inFile.close();     } catch (IOException e) {       e.printStackTrace(System.err);     }   } }