private JButton getOpenButton() { if (openButton == null) { openButton = new JButton(); openButton.setText("写入文件"); // 修改按钮的提示信息openButton.addActionListener(new java.awt.event.ActionListener() { // 按钮的单击事件public void actionPerformed(ActionEvent e) { // 创建文件对象File file = new File("word.txt"); try { // 创建FileWriter对象FileWriter out = new FileWriter(file); // 获取文本域中文本String s = jTextArea.getText(); out.write(s); // 将信息写入磁盘文件out.close(); // 将流关闭 } catch (Exception e1) { e1.printStackTrace(); } } } ); } return openButton; } private JButton getCloseButton() { if (closeButton == null) { closeButton = new JButton(); closeButton.setText("读取文件"); // 修改按钮的提示信息closeButton.addActionListener(new java.awt.event.ActionListener() { // 按钮的单击事件public void actionPerformed(ActionEvent e) { File file = new File("word.txt"); // 创建文件对象try { // 创建FileReader对象FileReader in = new FileReader(file); char byt[] = new char[1024]; // 创建char型数组int len = in.read(byt); // 将字节读入数组// 设置文本域的显示信息jTextArea.setText(new String(byt, 0, len)); in.close(); // 关闭流 } catch (Exception e1) { e1.printStackTrace(); } } } ); } return closeButton; }
As shown in the above program segment, at first I thought that both keystrokes recreated the woed.txt file, so didn’t they overwrite it?
Actually no, the word.txt file created by the File class is not really created. If you really want to create it, you must use file.creatNewfile(). In fact, new File("word.txt") is used in both places, but a cache is temporarily created in the disk.
And because the first button has already been created, the second one can use it directly (same name).
The above is the detailed content of How to solve the problem of duplicate txt files created by File class in Java. For more information, please follow other related articles on the PHP Chinese website!