2017-10-17 71 views
0

我正在用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); 

    } 
} 
+0

'catch(Exception ex){}':也许你应该*至少*尝试调试并查看任何异常消息,也许有一个。只是通过“捕获所有东西”(也称为口袋妖怪捕获)来压制异常并不是一种好的做法,可以帮助您调试问题。 – Pac0

+0

谢谢兄弟。我会试试你的建议 – BlackLotus

回答

1

您从不关闭您的流,因此其内容永远不会写入磁盘。

只需在out.write();之后致电out.close();即可。

如果您希望在不关闭流的情况下将内容写入磁盘,则可以使用out.flush();。 (谢谢@Ultraviolet)

+0

哇!!! Tsskk2..silly me..thank你兄弟..你真的帮了我很多。我没有注意到关闭蒸汽。真的很感谢你。谢谢 – BlackLotus

+0

我真的忘了关闭蒸汽。 – BlackLotus

+1

或者你可以使用'out.flush()',如果你不想关闭它。 – Ultraviolet

相关问题