Java BufferedWriter不工作
因此,我正在编写代码,作为登录系统的文件系统,预先添加了两个帐户,都是管理员。他们可以创建帐户。所有帐户都存储在用户名数组列表中,密码数组列表中。我正在尝试这样做,当我导出此应用程序时,当管理员添加到数组列表时,会将信息发送到txt文件,以便下次运行程序时,程序将加载txt文件上的任何帐户。我已经测试了帐户的加载,效果很好,但我似乎无法写入txt文件。我从这个网站上用这种方法获得了这段代码,但我不确定我做错了什么:Java BufferedWriter不工作,java,file,bufferedreader,bufferedwriter,Java,File,Bufferedreader,Bufferedwriter,因此,我正在编写代码,作为登录系统的文件系统,预先添加了两个帐户,都是管理员。他们可以创建帐户。所有帐户都存储在用户名数组列表中,密码数组列表中。我正在尝试这样做,当我导出此应用程序时,当管理员添加到数组列表时,会将信息发送到txt文件,以便下次运行程序时,程序将加载txt文件上的任何帐户。我已经测试了帐户的加载,效果很好,但我似乎无法写入txt文件。我从这个网站上用这种方法获得了这段代码,但我不确定我做错了什么: public static void writeFileContnet(){
public static void writeFileContnet(){
String path = "C:\\Users\\DJANDEK\\Desktop\\LogInPro\\info.txt";
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(path, true));
if(!loadFileAsString(path).equals("")){
writer.newLine();
}
System.out.println(Account.accounts.get(Account.accounts.size()-1));
writer.write(Account.accounts.get(Account.accounts.size()-1));
System.out.println(breaker);
writer.write(breaker);
System.out.println(Account.passwords.get(Account.passwords.size()-1));
writer.write(Account.passwords.get(Account.passwords.size()-1));
writer.write(breaker);
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(path));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String line;
try {
while((line = in.readLine()) != null)
{
System.out.println("it prints this");
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
对于那些想知道println的人,控制台显示:
上下快速移动
1Q2W;
牛屁股
(信息是正确的)。
控制台中没有错误。为了回答重复的问题,他被告知使用文件,而不是如何使用文件。如果txt文件中已经有数据,读卡器将读取并s.o.p它。您不能将数据写入jar中的文件。您需要提供文件系统中文件的路径。即使您更改为在文件系统中使用文件而不是在jar中使用文件,它仍然不会写入文件,因为您没有关闭BufferedWriter
可以显式关闭它,就像关闭BufferedReader一样。或者更好的是,您可以使用。Ok的可能副本,我不确定,但我认为这会是一个问题。我以前确实尝试过,但由于某种原因,路径无法正常工作。我尝试了以下路径:C:\\Users\\DJANDEK\\Desktop\\LogInPro\\info.txt,但似乎不起作用。我需要做一些关于绝对路径的事情吗?我确实解决了路径问题(我一定不能拼写,因为它现在可以正常工作了),但它似乎仍然没有编写它。如果文件中有文本,它仍会读取,但似乎没有添加其他文本。@Deek,出现了另一个错误-您没有关闭BufferedWriter。我已经为这个问题添加了第二个答案。这很有效!谢谢你的帮助,我还是会看一下你的链接:)