BufferedWriter无法正常工作

时间:2016-02-06 07:27:22

标签: java file bufferedreader bufferedwriter

所以我编写的代码充当了一个登录系统的文件系统,两个帐户都是预先添加的,都是管理员。他们可以创建帐户。所有帐户都存储在用户名的数组列表中,以及密码的数组列表。我试图这样做,以便当我导出此应用程序时,当管理员添加到数组列表时,将信息发送到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;  BobsPass (信息是正确的)。 我在控制台中没有错误。为了回答重复的问题,他被告知要使用文件,而不是如何使用该文件。如果我已经在txt文件上有数据,那么Reader将读取并s.o.p它。

2 个答案:

答案 0 :(得分:0)

你不能写到你的jar里面的文件。您需要提供文件系统上文件的路径。

答案 1 :(得分:0)

即使您更改为使用文件系统中的文件而不是jar中的文件,它仍然不会写入文件,因为您没有关闭BufferedWriter。

您可以像BufferedReader一样显式关闭它。或者更好的是,您可以使用try-with-resources