Il seguente algoritmo mi da un'eccezione di tipo IO
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class DataFile {
static final String dataFile = "invoicedata";
static final double[] prices = { 19.99, 9.99, 15.99, 3.99, 4.99 };
static final int[] units = { 12, 8, 13, 29, 50 };
static final String[] descs = { "Java T-shirt",
"Java Mug",
"Duke Juggling Dolls",
"Java Pin",
"Java Key Chain" };
public static void main(String[] args) {
try {
DataOutputStream out = new DataOutputStream(new
BufferedOutputStream(new FileOutputStream(dataFile)));
for (int i = 0; i < prices.length; i ++) {
out.writeDouble(prices[i]);
out.writeInt(units[i]);
out.writeUTF(descs[i]);
}
DataInputStream in = new DataInputStream(new
BufferedInputStream(new FileInputStream(dataFile)));
double price;
int unit;
String desc;
double total = 0.0;
while (true) {
price = in.readDouble();
unit = in.readInt();
desc = in.readUTF();
System.out.print("You ordered "+unit+" units of "+desc +" at "+price);
total += unit * price;
System.out.println("The total is"+total);
}
}
catch (FileNotFoundException e) {
System.out.println("DataFile::cattuata eccezione di tipo FileNotFoundException::"+e.toString());
}
catch (IOException e) {
System.out.println("DataFile::cattuata eccezione di tipo EOF::"+e.getMessage());
e.printStackTrace();
}
}
}