我在Netbeans中创建一个GUI,以获取用户对某些字段的输入。我不明白如何从选择到文本文件的JTextField和Radio Buttons中保存文本。
我附上了用户表格的下图。
一次"好的"按下按钮,用户获得一个保存文件的对话框。
目前,我可以将文件保存到文本文件中。但是文本文件中没有任何内容。如何从每个文本字段和单选按钮中检索数据?
请帮忙,我已经尝试了很多解决方案,但它没有正常工作。
private void buttonOkActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
String filename = JOptionPane.showInputDialog(null, "Enter the name to be saved", "File Name", 1 );
FileOutputStream writer = new FileOutputStream(filename+".dat");
txtFirstName.getText().toString(); //Trying to get text from First Name field.
writer.close();
JOptionPane.showMessageDialog(null,"Saved Successfully");
}catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
答案 0 :(得分:0)
之间
FileOutputStream writer = new FileOutputStream(filename+".dat");
和
writer.close();
您应该使用FileOutputStream' write
方法进行编写。
我认为你想要做的是:
FileOutputStream writer = null;
try {
FileOutputStream writer = new FileOutputStream(filename+".dat");
OutputStreamWriter os = new OutputStreamWriter(writer);
BufferedWriter bw = new BufferedWriter(os);
bw.write(txtFirstName.getText().toString());
} catch (FileNotFoundException ex) {
Logger.getLogger(generafechas.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(generafechas.class.getName()).log(Level.SEVERE, null, ex);
}finally{
if(writer!=null)
try {
writer.close();
} catch (IOException ex) {
Logger.getLogger(generafechas.class.getName()).log(Level.SEVERE, null, ex);
}
}
在上面的代码中,您可以看到FileOutputStream(通常以懒惰的方式引用为fos)被包装。
用Java编写文件有两类。读者/作家和流。 你的fos是一个流,所以它处理系统特定的实现并写入字节或整数,同时BufferedWritter(懒惰的bw)处理写入对象和基本类型。通过包装,我们可以获得两全其美,高级处理和低级功能。