问题描述
我正在解决这个 java 问题,我必须写入系统上的文本文件而不调整该文件上的现有文本数据,我使用 randomAceessFile.seek((inputStream.available()+1));
将我的指针指向现有数据之前的 1 个空格,然后我使用 randomAceessFile.write((newData.trim()).getBytes());
写入该文件,现在的问题是,此操作后文件数据在现有数据和添加的新数据之间应该有空间,但下面的代码只向文件添加了新数据和 { {1}} 而不是数据之间的空格。
\00
这个程序给出的输出是
现有数据 \00文件中的新数据
解决方法
零字节是因为您寻求现有长度加一。现有字节从 0 到 length-1 编号,因此您需要精确地查找现有长度。
也就是说,在偏移量“现有长度”处没有专门写入文件,因此您得到一个零字节。
没有人会神奇地插入一个以前不存在的空格(0x20 字节)。你需要这样做。这很简单:newData = " new data on file"
(并省略对您所写内容的修剪调用)。
也许您之前阅读的内容是在“位置”的意义上使用“空间”一词?