我試圖讀取一組結構化數據溫度測量。數據以5個整數(然後轉換爲日期)和1個雙精度(溫度)的集合寫入二進制(dat)文件。從二進制文件讀取結構化數據的循環 - Java
我能夠從第一個度量中讀取,但是我想通過使用循環來瀏覽其他度量。我知道它保存在文件中,因爲我沒有循環檢查它。
我得到StreamClosedException
與下面的代碼,這是清楚的,但JDK不允許我放置循環後關閉聲明,我沒有另一個想法如何做到這一點。將感謝幫助。
public String readFile() {
String s = "";
int y, m, d, h, mm = 0;
double p = 0;
try {
FileInputStream fis = new FileInputStream(fileLocation);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
while (true) {
y = dis.readInt();
m = dis.readInt();
d = dis.readInt();
h = dis.readInt();
mm = dis.readInt();
temp = dis.readDouble();
System.out.println("Measure from : " + y + "-" + m + "-" + d
+ " " + h + ":" + mm + " ,temp: " + temp);
dis.close();
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return s;
}
我假設你想要*停止*閱讀,當你到達文件的結尾,對吧?你的代碼(刪除close)試圖永遠保持閱讀。 – immibis 2015-02-11 07:14:20