写入时不附加FileOutputStream(File,append)

时间:2016-08-02 17:03:38

标签: java file fileoutputstream

此代码是对象的一部分,每个对象应将其位置写入accountstorage.txt,但它只写入第一个对象的位置,即使我设置追加为true

accountstorage = new File(currDir + "/Clients/accountstorage.txt");

        try {
            if(!accountstorage.exists()) {
        accountstorage.getParentFile().mkdirs();
        accountstorage.createNewFile();
            } else {
                return;
            }


            fos = new FileOutputStream(accountstorage, true);
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));


        bw.write("@" + accountfile.getParentFile() + "\r\n");
        bw.flush();
        bw.close();

是什么导致这个?我似乎无法自己找到这个问题。

1 个答案:

答案 0 :(得分:1)

因为你的条件阻止

 if(!accountstorage.exists()) {
    accountstorage.getParentFile().mkdirs();
    accountstorage.createNewFile();
} else {
    return; // DUE to this... Remove else block to fix.
}

当你的文件不存在时,它会创建它并写下这个位置,但是当你的文件存在时,它会返回并且不会写任何东西。

希望这有帮助。