这是我的saveTable
按钮,它保存了我的一行表,而不是将其放入我的Auto.auto
文件中,但我只能保存一个object(row)
Auto type
。每次我保存另一个line(row)
时它会替换旧的object(row of table)
,所以最后我在我的程序运行时点击保存按钮5次后,我的文件中只有一个 saveTable.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int row = Integer.parseInt(textField.getText());
getText.getAuto(row);
File tabel = new File("C:\\Users\\Jovan\\Desktop\\Auto.auto");
try {
if (!(tabel.exists())) {
tabel.createNewFile();
}
FileOutputStream fos = new FileOutputStream(tabel);
ObjectOutputStream oos1 = new ObjectOutputStream(fos);
oos1.writeObject(getText.getAuto(row));
oos1.close();
ObjectOutputStream os2 = new ObjectOutputStream(new FileOutputStream(tabel, true)) {
protected void writeStreamHeader() throws IOException {
reset();
}
};
os2.writeObject(getText.getAuto(row));
os2.close();
} catch (IOException error) {
error.printStackTrace();
}
}
});
。我怎么解决这个问题?
//Code block generating dropdown list from states object
for (let i = 0; i < states.length; i++) {
if (states[i].id > 0) {
var option = $("<option>", {
text: states[i].state + " " + states[i].district,
value: states[i].id,
url : states[i].url
});
$('#listed_states').append($(option));
}
}
$('#listed_states').on('change', function(){
if ($(this).find('option:selected').attr('url')){
window.open($(this).find('option:selected').attr('url'), '_blank');
} else {
console.log('false');
}
})
});
答案 0 :(得分:1)
new FileOutputStream(tabel, true)
第二个参数意味着您将附加到该文件而不是覆盖它
public FileOutputStream(File file, 布尔附加) 抛出FileNotFoundException
创建文件输出流以写入由指定的File对象表示的文件。 如果第二个参数为true,则字节将写入结尾 文件而不是开头。一个新的FileDescriptor对象是 创建以表示此文件连接。首先,如果有的话 安全管理器,其路径调用其checkWrite方法 由file参数表示为其参数。
如果文件存在但是是目录而不是常规文件,那么 不存在但无法创建,或无法打开任何其他 之所以抛出FileNotFoundException。
参考here