-2
我正在使用此代碼讀取和寫入文件,但此代碼正在拋出(java.io.StreamCorruptedException)。我在我的代碼中使用了Vector來反向讀取文件(文件結尾到文件開頭)。請告訴解決方案。讀取文件時拋出java.io.StreamCorruptedException
import java.awt.Toolkit;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.JTable;
class Data implements Serializable {
private static final long serialVersionUID = 1L;
private String time;
private String note;
public Data(String time, String note) {
this.time=time;
this.note=note;
}
public String getTime() {
return time;
}
public String getNote() {
return note;
}
}
public class S {
public static void rt(String time, String note) {
try
{
ObjectOutputStream w = new ObjectOutputStream(new FileOutputStream("file.cer",true));
w.writeObject(new Data(time,note));
w.close();
}
catch(Exception exp) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, String.format("ERROR = %s\nCLASS = S", exp.getClass()));
System.exit(0);
}
}
public static void rd() {
Vector v = new Vector();
Object[][] data = new Object[100][3];
String columns[] = {"S.No","NOTES","TIME RECORDS"};
JTable timeRocords = new JTable(data,columns);
Data d;
try
{
ObjectInputStream r = new ObjectInputStream(new FileInputStream("file.cer"));
for(int i=1; i<=100; i++) {
try { v.add(r.readObject()); }
catch(EOFException exp){
r.close();
break;
}
}
for(int i=0; i<v.size(); i++) {
d = (Data)v.elementAt(i);
System.out.println(d.getNote()+" "+d.getTime());
}
}
catch(Exception exp) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, String.format("ERROR = %s\nCLASS = S", exp.getClass()));
System.exit(0);
}
}
public static void main(String arg[]) {
rt("90:50:50:90","recent");
rt("99:59:59:99","late");
rd();
}
}
例外的一個要點是,它告訴你哪裏出了問題,哪裏,但是你不認爲這與你的問題有關? – John3136