Java BufferedWriter不工作

Java BufferedWriter不工作,java,file,bufferedreader,bufferedwriter,Java,File,Bufferedreader,Bufferedwriter,因此,我正在编写代码,作为登录系统的文件系统,预先添加了两个帐户,都是管理员。他们可以创建帐户。所有帐户都存储在用户名数组列表中,密码数组列表中。我正在尝试这样做,当我导出此应用程序时,当管理员添加到数组列表时,会将信息发送到txt文件,以便下次运行程序时,程序将加载txt文件上的任何帐户。我已经测试了帐户的加载,效果很好,但我似乎无法写入txt文件。我从这个网站上用这种方法获得了这段代码,但我不确定我做错了什么: public static void writeFileContnet(){

因此,我正在编写代码,作为登录系统的文件系统,预先添加了两个帐户,都是管理员。他们可以创建帐户。所有帐户都存储在用户名数组列表中,密码数组列表中。我正在尝试这样做,当我导出此应用程序时,当管理员添加到数组列表时,会将信息发送到txt文件,以便下次运行程序时,程序将加载txt文件上的任何帐户。我已经测试了帐户的加载,效果很好,但我似乎无法写入txt文件。我从这个网站上用这种方法获得了这段代码,但我不确定我做错了什么:

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。我已经为这个问题添加了第二个答案。这很有效!谢谢你的帮助,我还是会看一下你的链接:)