Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 替换缓冲写入程序中的字符_Java_String_Text_Bufferedwriter - Fatal编程技术网

Java 替换缓冲写入程序中的字符

Java 替换缓冲写入程序中的字符,java,string,text,bufferedwriter,Java,String,Text,Bufferedwriter,我正在使用BufferedWriter BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("/home/user/temp.txt")); /* Add Contents using bufferedWriter.write() */ 在添加内容的某些地方,我添加了一个字符串序列 在执行bufferedWriter.close()之前,我想用一些特定值替换#####序列 我

我正在使用
BufferedWriter

BufferedWriter bufferedWriter = 
           new BufferedWriter(new FileWriter("/home/user/temp.txt"));

/*

     Add Contents using bufferedWriter.write()

*/
在添加内容的某些地方,我添加了一个字符串序列

在执行
bufferedWriter.close()
之前,我想用一些特定值替换#####序列

我该怎么做


我不想重新打开编写器,但如果允许,可以使用其他编写器。

将内容创建为
字符串或
列表


在替换
#####
后,您将
字符串
列表
写入
缓冲写入程序

,我相信您有以下选项:

  • 编写自己的
    编写器
    。我所知道的
    编写器中没有一个能够做到这一点,因为当您对它们调用
    .write()
    时,它们实际上会写入磁盘(文件)。有些,如
    BufferedWriter
    ,不会立即执行此操作,但如果超出内部缓冲区,它将被刷新到文件中,即使您不调用
    flush()
    close()

  • 简单使用。写入
    StringBuilder
    ,然后替换序列,然后才写入文件

  • 每次遇到
    时写入新文件。实际上,您将有几个文件,它们之间缺少一段文本。知道应该替换
    的正确顺序后,使用该顺序加入文件

  • 如果您有足够的内存来保存内存中的所有数据,请使用
    列表(在
    处拆分
    ,然后使用类似于a的方式连接元素)


  • 像这样的东西怎么样

    BufferedReader br = new BufferedReader(new FileReader("/home/user/temp.txt"));
    BufferedWriter bw = new BufferedWriter(new FileWriter("/home/user/temp.txt"))
    String line
    StringBuffer sb = new StringBuffer()
    while (line = br.readLine()) {
        line = line.replace("######", "yourReplacement")
        sb.append(line)
    }
    br.close()
    bw.write(sb.toString(), 0, sb.length())
    bw.close()
    

    如果你只是想替换它,为什么还要写呢?它像一个模板吗?请参阅。@SotiriosDelimanolis必须替换的值只有在经过某些计算并且只有在放入内容后才知道。