boolean valid = false;
String user = txtUser.getText();
String pass = txtPass.getText();
try {
PrintWriter writer = new PrintWriter("src/file");
writer.println("The line");
writer.println(user + "#" + pass);
JOptionPane.showMessageDialog(null,"Sign Up"complete",JOptionPane.INFORMATION_MESSAGE);
writer.close();
} catch(Exception e) {
}
我正在制作一个注册页面,我已经创建了登录页面。代码中的#用于将用户名分隔为密码。一切正常,但问题是每次我注册时都会替换我上次给出的注册信息。所以,如果我第一次使用用户名" greg"和密码" 877"它工作正常,但如果我再次继续程序并使用不同的用户名和密码注册另一个用户,它将替换第一个用户名并通过。每次有人报名时我都需要它去新线。
答案 0 :(得分:5)
首先使用FileWriter
包装文件:
PrintWriter writer = new PrintWriter(new FileWriter("src/file", true));
以下是FileWriter(String, boolean)
的构造函数的说明:
构造一个FileWriter对象,给定一个带有布尔值的文件名,指示是否附加写入的数据。
<强>参数强>
fileName
- String依赖于系统的文件名。
append
- 布尔如果true
,则数据将写入文件的末尾而不是开头
答案 1 :(得分:0)
您正在使用public PrintWriter(File file)
写入文件
javadoc说 -
parameter specifies the file to use as the destination of this writer. If the file
exists then it will be truncated to zero size; otherwise, a new file will be created.
The output will be written to the file and is buffered.
因此,在您的情况下,您需要将文本附加到现有文件的内容,以便Luiggi说FileWriter
是您的朋友
FileWriter, a character stream to write characters to file. By default, it will
replace all the existing content with new content, however, when you specified a
true (boolean) value as the second argument in FileWriter constructor, it will keep
the existing content and append the new content in the end of the file.
以这种方式尝试
PrintWriter outputFile = new PrintWriter(new FileWriter("src/file", true));