gpt4 book ai didi

java - 如何使用 FileChannel 将一个文件的内容附加到另一个文件的末尾?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:10 28 4
gpt4 key购买 nike

文件 a.txt 看起来像:

ABC

文件 d.txt 看起来像:

DEF

我正在尝试获取“DEF”并将其附加到“ABC”,因此 a.txt 看起来像

ABC
DEF

我尝试过的方法总是完全覆盖第一个条目,所以我总是以:

DEF

以下是我试过的两种方法:

FileChannel src = new FileInputStream(dFilePath).getChannel(); 
FileChannel dest = new FileOutputStream(aFilePath).getChannel();

src.transferTo(dest.size(), src.size(), dest);

...我试过了

FileChannel src = new FileInputStream(dFilePath).getChannel(); 
FileChannel dest = new FileOutputStream(aFilePath).getChannel();

dest.transferFrom(src, dest.size(), src.size());

API 不清楚此处的 transferTo 和 transferFrom 参数说明:

http://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html#transferTo(long , 长, java.nio.channels.WritableByteChannel)

感谢您的任何想法。

最佳答案

这是旧的,但由于您打开文件输出流的模式而发生覆盖。对于任何需要这个的人,试试

FileChannel src = new FileInputStream(dFilePath).getChannel(); 
FileChannel dest = new FileOutputStream(aFilePath, true).getChannel(); //<---second argument for FileOutputStream
dest.position( dest.size() );
src.transferTo(0, src.size(), dest);

关于java - 如何使用 FileChannel 将一个文件的内容附加到另一个文件的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20131173/

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