gpt4 book ai didi

java - 将数据写入文件会删除之前的所有内容(放置 00)并更改文件大小

转载 作者:行者123 更新时间:2023-12-02 07:01:06 25 4
gpt4 key购买 nike

我有一个程序可以写出一些数据 - 我正在使用这个逻辑

FileOutputStream outpre = new FileOutputStream(getfile());
FileChannel ch = outpre.getChannel();
ch.position(startwr);
ch.write(ByteBuffer.wrap(dsave));
outpre.close();

它将正确的数据写到正确的位置,唯一的问题是开始写入位置(startwr)之前的所有内容都被替换为00,并且文件也发生了更改,使得写入完成了,文件末尾。

如何将数据写入文件而不损坏以前的数据并更改文件大小?

最佳答案

您需要指示流附加或覆盖文件的内容...

看看FileOutpuStream(File, boolean)了解更多详情

已更新

经过一番研究后,我发现唯一可以接近工作的解决方案是......

RandomAccessFile raf = null;

try {
raf = new RandomAccessFile(new File("C:/Test.txt"), "rw");
raf.seek(3);
raf.writeBytes("BB");
} catch (IOException exp) {
exp.printStackTrace();
} finally {
try {
raf.close();
} catch (Exception e) {
}
}

关于java - 将数据写入文件会删除之前的所有内容(放置 00)并更改文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16662515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com