ReadBinaryFile.java Source code

Java tutorial

Introduction

Here is the source code for ReadBinaryFile.java

Source

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.NumberFormat;

public class ReadBinaryFile {
    public static void main(String[] args) throws Exception {
        NumberFormat cf = NumberFormat.getCurrencyInstance();

        File file = new File("product.dat");
        DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));

        boolean eof = false;
        while (!eof) {
            Product movie = readMovie(in);
            if (movie == null)
                eof = true;
            else {
                String msg = Integer.toString(movie.year);
                msg += ": " + movie.title;
                msg += " (" + cf.format(movie.price) + ")";
                System.out.println(msg);
            }
        }
        in.close();
    }

    private static Product readMovie(DataInputStream in) {
        String title = "";
        int year = 0;
        double price = 0.0;

        try {
            title = in.readUTF();
            year = in.readInt();
            price = in.readDouble();
        } catch (EOFException e) {
            return null;
        } catch (IOException e) {
            System.out.println("I/O Error");
            System.exit(0);
        }
        return new Product(title, year, price);
    }
}

class Product {
    public String title;

    public int year;

    public double price;

    public Product(String title, int year, double price) {
        this.title = title;
        this.year = year;
        this.price = price;
    }
}