2013-11-25 136 views
0

使用RandomAccessFile transferFrom函數,嘗試從位置1300(以uint8個部分)開始的文件fileto傳輸到fileto。Java transfer從部分二進制文件?

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十六進制數很多在原來的標題是?

回答

1

你想用transferTo我相信

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

transferFrom嘗試在位置n在outfile中啓動,而transferTo將在位置n infile中

+0

好的開始,我改變了順序壽tochannel.transferTo(n,fromfile.length() - n,tochannel)。它的工作原理除了輸出文件在刪除頭部的起始處有很多零?任何想法 –

+0

我不確定什麼會導致你在開始時得到零?切換到java.io.FileOutputStream可能會有所幫助。 – Scott