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必须替换的值只有在经过某些计算并且只有在放入内容后才知道。