当前位置: 首页 > 知识库问答 >
问题:

如何不覆盖文件(使用附加模式)[重复]

弘承运
2023-03-14

这是我当前的代码:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFile {
    public static void main(String[] args) {

    }

    public void Write(String content) {
        BufferedWriter bw = null;
        try {

            //Specify the file name and path here
            File file = new File("C:\\Users\\Gbruiker\\Dropbox\\Java\\Rekenen\\src\\sommen.txt");

                     /* This logic will make sure that the file 
                      * gets created if it is not present at the
                      * specified location*/
            if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file);
            bw = new BufferedWriter(fw);
            bw.append(content);
            bw.append("\n");
            System.out.println("File written Successfully");

        }
        catch (IOException ioe) {
            ioe.printStackTrace();
        }
        finally {
            try {
                if (bw != null)
                    bw.close();
            }
            catch (Exception ex) {
                System.out.println("Error in closing the BufferedWriter" + ex);
            }
        }
    }
}

如何使其不会覆盖文本文件中的当前文本?

有什么建议吗?我这样做对吗?程序必须向文件添加一些文本,但不能覆盖当前内容。因为现在它正在覆盖当前内容。

共有2个答案

司寇苗宣
2023-03-14

FileWriter fw=new FileWriter(file);更改为FileWriter fw=new FileWriter(file, true);

布尔值附加模式。

从javadoc:

public FileWriter(String fileName,boolean append)在给定文件名的情况下构造一个FileWriter对象,该文件名带有一个布尔值,指示是否追加写入的数据。参数:fileName-字符串依赖于系统的文件名。append-boolean如果为true,则数据将写入文件的末尾而不是开头。抛出:IOException-如果命名文件存在但是目录而不是常规文件,不存在但无法创建,或由于任何其他原因无法打开

许学真
2023-03-14

使用新的FileWriter(file,true) 构造函数,其中true用于附加到文件,而不是覆盖。

 类似资料:
  • 问题内容: 我有以下代码: 我想用新内容替换文件中的旧内容。但是,当我执行代码时,将附加文件“ test.xml”,即,我的旧内容被新的“替换”内容所取代。为了删除旧内容而只保留新内容,我该怎么办? 问题答案: 您需要先写入文件的开头,然后再使用(如果要进行就地替换): 另一种方法是读取文件,然后使用再次打开它: 无论是也将改变inode的文件的数量(我测试过两次,一次是与Ubuntu 12.04

  • 问题内容: 好的,在将多行写入文本文件时遇到麻烦。 该程序运行,但是不会每次都使用新行 当我希望它运行4次时,文本文件应如下所示: 相反,它看起来像: 谁知道如何解决这个问题?所有导入均正确导入。 来源(经过略微编辑,假设所有内容均已正确定义): 问题答案: 确保在创建的实例时要附加到其末尾。这可以通过使用此特定的构造函数来完成,该构造函数将其他参数作为第二个参数。这告诉追加到文件末尾,而不是覆盖

  • 问题内容: 我创建了一个自定义样式表,该样式表将覆盖Wordpress模板的原始CSS。但是,在我的日历页面上,原始CSS具有声明的每个表格单元格的高度: 有什么办法可以覆盖这个吗? 问题答案: 覆盖!important修饰符 只需使用添加另一个CSS规则,并赋予选择器更高的特异性(向选择器添加其他标签,id或类) 在比现有选择器晚的位置添加具有相同选择器的CSS规则(平局中,最后一个定义的获胜者

  • 问题内容: 我正在开发页面,现在以我的CSS样式我有以下代码行 为我的页面。现在,我的某些页面不需要此行 我可能会在页面的内部CSS中覆盖它,这将导致原始行为被忽略? 问题答案: 使用不推荐,但在这种情况下,我想你应该- 在您的内部CSS中编写此代码-

  • 我正在使用Azure Blob存储来上传/下载文件。问题是,如果我上传到azure blob中的任何新文件与已经上传的文件同名,那么它会自动覆盖以前上传的文件的内容。 null 因此,如果我上传一个名为“file1.docx”的新文件,它们有不同的内容。那么blob存储将替换以前上传的file1.docx。所以在这种情况下,我丢失了以前上传的文件。 blob存储有什么方法可以自动检测到有重复,这样

  • 问题内容: 使用的文档/例子的覆盖材料UI造型与风格的成分,我已经成功地风格内的根源,“更深层次的元素” 和。 但是,当我使用相同的技术返回传递给的函数的覆盖时,DOM中的移动以及整个移动将不再正确呈现。 所应用的技术(在容器上按预期工作): 和朋友的典型DOM(缩写为类名): 当我将上述技术应用于时的DOM : 为了完整起见,这是我正在做的事情的最小复制,它会触发DOM切换: 我的JSX是标准设