我正在尝试使用提交按钮将GUI保存在文本文件中,我已经制作了GUI和按钮监听器等等但是我无法制作将GUI中的信息保存到文本文件中的方法。
到目前为止,我有:public void save() {
File k1 = new File("documents/"+"newfile.txt");
try {
k1.createNewFile();
FileWriter kwriter = new FileWriter(k1);
BufferedWriter bwriter = new BufferedWriter(kwriter);
bwriter.write(txtField1.getText().trim());
bwriter.newLine();
bwriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
但它似乎不起作用,没有任何反应;有什么我想念的吗?
答案 0 :(得分:2)
您的文件名为.txt
- 可能在第一行插入名称:
File k1 = new File("documents/filename.txt");
答案 1 :(得分:1)
运行该代码时应该收到错误。 问题是文档目录不存在或者不在您期望的位置。
您可以使用以下方法检查父目录:
if(!k1.getParentFile().exists()){
k1.getParentFile().mkdirs();
}
或者,您需要将文件设置为更精确的位置。 org.apache.commons.lang.SystemUtils可以帮助你在这里与用户家。
答案 2 :(得分:0)
我的猜测是文件正在创建,但不在您期望的目录中。检查user.dir
系统属性的值,看看它显示的内容。这是JVM的当前工作目录。
您可能需要:
new File("/home/foo/newfile.txt")
java
命令,然后只是先切换目录,如果你从IDE运行然后更改启动配置,等)。据我所知,您无法在运行时更改工作目录(请参阅this SO question)。
答案 3 :(得分:0)
我只是认为有一种更简单的方法,例如我按下“提交”按钮时已经让Jfilechoser打开“另存为框”,因此有更简单的方法来创建文件(保存gui信息)在txt文件中)?
这是previous question的延续。您应该获取所选文件并在Writer
的任何PrintWriter
的帮助下写入,Java IO tutorial。
File file = fileChooser.getSelectedFile();
PrintWriter writer = new PrintWriter(file);
try {
writer.println(txtField1.getText().trim());
writer.flush();
} finally {
writer.close();
}
请勿在其他位置创建new File()
并致电File#createFile()
,以免过度复杂化。写信就足够了。
更新这里是{{3}},你可以复制'n'paste'n'compile'n'run它。
package com.example;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JFileChooser;
public class Test {
public static void main(String[] args) throws IOException {
JFileChooser fileChooser = new JFileChooser();
if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
PrintWriter writer = new PrintWriter(file);
try {
writer.println("Hello");
writer.flush();
} finally {
writer.close();
}
Desktop.getDesktop().open(file);
}
}
}
答案 4 :(得分:0)
您的代码对我有用,只需稍加改动。
作为调试过程,我会完全删除目录路径并尝试仅使用文件..
而不是
File k1 = new File("documents/"+"newfile.txt");
使用
File k1 = new File("newfile.txt");
检查文件的生成位置,然后在那里创建目录..
祝你好运!!