Reading Mixed Data from a File : FileInputStream « File « Java Tutorial






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








11.8.FileInputStream
11.8.1.FileInputStream
11.8.2.Create FileInputStream and read, display data
11.8.3.Getting FileChannel from FileInputStream
11.8.4.Creating File Input Streams from file name
11.8.5.Creating FileInputStream from File object
11.8.6.Using a FileDescriptor from getFD() and creating a FileInputStream from FileDescriptor
11.8.7.Constructing FileInputStream to read from a Text File
11.8.8.Skip n bytes while reading the file using FileInputStream
11.8.9.Copy a file with read(byte[] data) and write(byte[] data)
11.8.10.Reading a Binary File
11.8.11.Reading Mixed Data from a File
11.8.12.Read one byte from a file
11.8.13.Read file character by character
11.8.14.Reading a File into a Byte Array: reads the entire contents of a file into a byte array
11.8.15.Read bytes and display their hexadecimal values.
11.8.16.Reading UTF-8 Encoded Data
11.8.17.Reading into a Large Buffer through FileChannel
11.8.18.Display file contents in hexadecimal