import java.io.*;
import java.util.*;

/** 
 *  Demo program showing how to read data from a binary file 
 *
 *  @author Nick Howe
 *  @version 9 April 2013
 */
public class ReadBinaryFile {
    /** Reading in from a text file */
    private static void readDataFromBinaryFile(String fileName) {

        // encase all output in try/catch in case of error
        try {
            DataInputStream in = 
                new DataInputStream(new FileInputStream(fileName));
            while (in.available()>0) {
                String name = in.readUTF();
                double salary = in.readDouble();
                System.out.println(name+" $"+salary);
            }
        } catch (IOException e) {
            System.err.println("Problem reading from file.");
        }
    }

    /** The main method calls others to read data in */
    public static void main(String[] args) {
        try {
            readDataFromBinaryFile(args[0]);
        } catch (ArrayIndexOutOfBoundsException e) {
            System.err.println("Usage:  java ReadBinaryFile employees.bin");
        }
    }
}
