Java 将JTextField和所选单选按钮数据保存到文本文件中
我已经在Netbeans中创建了一个GUI,用于从用户处获取特定字段的输入。我不明白如何将选中的JTextField和单选按钮中的文本保存到文本文件中 我在下面附上了用户表单的图片 按下“确定”按钮后,用户将获得一个对话框来保存文件 目前,我可以将文件保存为文本文件。但文本文件中没有显示任何内容。如何从每个文本字段和单选按钮检索数据 请帮忙,我尝试了很多解决方案,但都没有正常工作Java 将JTextField和所选单选按钮数据保存到文本文件中,java,user-interface,netbeans,jdialog,fileoutputstream,Java,User Interface,Netbeans,Jdialog,Fileoutputstream,我已经在Netbeans中创建了一个GUI,用于从用户处获取特定字段的输入。我不明白如何将选中的JTextField和单选按钮中的文本保存到文本文件中 我在下面附上了用户表单的图片 按下“确定”按钮后,用户将获得一个对话框来保存文件 目前,我可以将文件保存为文本文件。但文本文件中没有显示任何内容。如何从每个文本字段和单选按钮检索数据 请帮忙,我尝试了很多解决方案,但都没有正常工作 private void buttonOkActionPerformed(java.awt.event.Action
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);
}
}
介于
FileOutputStream writer = new FileOutputStream(filename+".dat");
及
实际上,您应该使用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是一个流,因此它处理特定于系统的实现并写入字节或整数,而BufferedWriter(为了懒散起见,bw)处理写入对象和基本类型。通过包装,我们得到了两个方面的最佳效果,即高级处理和低级功能。当我尝试时,我得到了一个错误***没有为write(String)方法OutputStream找到合适的方法。write(int)不适用(参数不匹配;String无法转换为int)方法OutputStream.write(字节[])不适用(参数不匹配;字符串不能转换为字节[])方法FileOutputStream。写入(int)不适用(参数不匹配;字符串不能转换为int)方法FileOutputStream。写入(字节[])不适用(参数不匹配;字符串不能转换为字节[])Redundant String.toString()对于您的特定示例,它现在应该可以工作了。另一种方法应该是对字节进行强制转换,但这是由bw内部完成的(无痛苦且经过优化)。
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);
}
}