尝试使用RandomAccessFile transferFrom函数从位置1300(以uint8个数)开始的文件file传输到fileto。

fromfile = java.io.RandomAccessFile(ifile, 'rw');
fromchannel = fromfile.getChannel();
tofile = java.io.RandomAccessFile(ofile, 'rw');
tochannel = tofile.getChannel();
tochannel.transferFrom(fromchannel,n,fromfile.length()-n)

tochannel.close();
fromchannel.close();
fromfile.close();
tofile.close();


我的输出文件是空的。

有人知道我在做什么错吗?

编辑1:

我变了

tochannel.transferFrom(fromchannel,n,fromfile.length()-n)




fromchannel.transferTo(n,fromfile.length()-n,tochannel)


但是现在输出将打印到所有文件,除了它放了很多00十六进制数(原始标头是???)之外?

最佳答案

我想使用transferTo

fromchannel.transferTo(n,fromfile.length()-n,tochannel)


transferFrom尝试从outfile中的位置n开始时,而transferTo将从infile的位置n中开始

07-25 21:33