为什么我的输出文件在我的GUI Java程序中为空?
我正在用GUI进行用户输入。我的主要目标是记录用户将输入的任何内容并将其发送到文件'file.txt'。为什么我的输出文件在我的GUI Java程序中为空?
但是,无论何时打开文件,它都是空的,即使我已经在文本框中输入了。它仍然返回空。我是Java的初学者。
package testpath;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class Testpath extends JFrame {
JLabel label;
JTextField tf;
JButton button;
public Testpath(){
setLayout(new FlowLayout());
label= new JLabel("Enter First Name");
add(label);
tf=new JTextField(10);
add(tf);
button=new JButton("Log In");
add(button);
event e=new event();
button.addActionListener(e);
}
public class event implements ActionListener{
public void actionPerformed(ActionEvent e){
try{
String word=tf.getText();
FileWriter stream= new FileWriter("C://Users//Keyboard//Desktop//file.txt");
BufferedWriter out=new BufferedWriter(stream);
out.write(word);
}catch (Exception ex){}
}
}
public static void main(String[] args) {
Testpath gui=new Testpath();
gui.setLocationRelativeTo(null);
gui.setVisible(true);
gui.setSize(400,250);
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
您从不关闭您的流,因此其内容永远不会写入磁盘。
只需在out.write();
之后致电out.close();
即可。
如果您希望在不关闭流的情况下将内容写入磁盘,则可以使用out.flush();
。 (谢谢@Ultraviolet)
哇!!! Tsskk2..silly me..thank你兄弟..你真的帮了我很多。我没有注意到关闭蒸汽。真的很感谢你。谢谢 – BlackLotus
我真的忘了关闭蒸汽。 – BlackLotus
或者你可以使用'out.flush()',如果你不想关闭它。 – Ultraviolet
'catch(Exception ex){}':也许你应该*至少*尝试调试并查看任何异常消息,也许有一个。只是通过“捕获所有东西”(也称为口袋妖怪捕获)来压制异常并不是一种好的做法,可以帮助您调试问题。 – Pac0
谢谢兄弟。我会试试你的建议 – BlackLotus