gpt4 book ai didi

Java FileChannel 大于其内容

转载 作者:行者123 更新时间:2023-11-30 03:36:39 25 4
gpt4 key购买 nike

我正在创建一个 fileChannel 来执行内存映射写入。该文件 channel 的大小为 100 字节。我只向其中写入 80 个字节。因此,当我稍后读取该文件时,它会在 and 上添加 5 个“0”。有没有办法设置大小或获取写入文件的大小?

非常感谢!!

public FileChannel create(String randomFile){
// create file output stream
RandomAccessFile raf;
FileChannel fc = null;

try {
raf = new RandomAccessFile(randomFile, "rw");
fc = raf.getChannel();
System.out.println("fc.size() "+ fc.size());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return fc;
}

最佳答案

改用这个:

final Path path = Paths.get("thefile");
final FileChannel fc = FileChannel.open(path, StandardOpenOption.WRITE,
StandardOpenOption.READ);

// then later:

fc.truncate(80L);

当然,不要忘记.close()。理想情况下,您应该使用 try-with-resources 语句打开您的 channel 。

关于Java FileChannel 大于其内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27746292/

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