Java,是否可以在不创建临时文件的情况下用字符串替换文件的第n行?

Java,是否可以在不创建临时文件的情况下用字符串替换文件的第n行?,java,Java,我管理的唯一方法是创建一个临时文件来执行此操作,但这不是我想要的。有人能提供一个例子,说明如何用字符串替换文本文件的第n行,而不生成临时文件 提前感谢=)您可以使用RandomAccessFile…这同时提供了对文件的读写…所以您不需要创建临时文件 想法是使用readLine跳过第N-1行 然后计算第七行的字节数,并与替换字符串字节数进行比较 如果replaceStringBytesseventhLineBytes,则创建以字节为单位的差异缓冲区,并在第七行之后存储其他字节。。。每次向前移动时,

我管理的唯一方法是创建一个临时文件来执行此操作,但这不是我想要的。有人能提供一个例子,说明如何用字符串替换文本文件的第n行,而不生成临时文件


提前感谢=)

您可以使用RandomAccessFile…这同时提供了对文件的读写…所以您不需要创建临时文件

想法是使用readLine跳过第N-1行

然后计算第七行的字节数,并与替换字符串字节数进行比较

如果replaceStringBytes 如果replaceStringBytes>seventhLineBytes,则创建以字节为单位的差异缓冲区,并在第七行之后存储其他字节。。。每次向前移动时,继续用差异填充缓冲区

这里有一条线索可以给你一些提示


您可以使用RandomAccessFile…它同时提供对文件的读取和写入…所以您不需要创建临时文件

想法是使用readLine跳过第N-1行

然后计算第七行的字节数,并与替换字符串字节数进行比较

如果replaceStringBytes 如果replaceStringBytes>seventhLineBytes,则创建以字节为单位的差异缓冲区,并在第七行之后存储其他字节。。。每次向前移动时,继续用差异填充缓冲区

这里有一条线索可以给你一些提示


临时文件是正确的wa。为什么不呢?查看随机访问文件()。这应该可以让你做你想做的。字符串的长度,以字节为单位,是否等于现有行的长度,以字节为单位?相信我,这对我正在使用的内容不起作用。这个文件是如何使用的?它是属性文件吗?临时文件是正确的wa。为什么不呢?查看随机访问文件()。这应该可以让你做你想做的。字符串的长度,以字节为单位,是否等于现有行的长度,以字节为单位?相信我,这对我正在使用的内容不起作用。这个文件是如何使用的?它是一个属性文件吗?