本文**
本文主要介紹隨機流的斷點續傳的具體使用
斷點續傳原理
首先把隨機訪問的檔案物件看作儲存在檔案系統中的乙個大型 byte 陣列,然後通過指向該 byte 陣列的游標或索引(即:檔案指標 filepointer)在該陣列任意位置讀取或寫入任意資料相關方法說明
1 物件宣告2 獲取當前檔案的位置
randomaccessfile raf = new randomaccessfile(file file, string mode);
其中 mode 的值可選 r w rw
int randomaccessfile.getfilepointer();
3 改變檔案指標位置(相對位置,絕對位置)
1 絕對位置:4 給寫入檔案預留空間randomaccessfile.seek(int index);
2 相對位置:
randomaccessfile.skipbyte(int step);
// 相對當前位置
randomaccessfile.setlength(long len);
使用多執行緒複製大檔案
1 自定義執行緒,實現對檔案的隨機讀寫
public
class
mythread
extends
thread
catch
(filenotfoundexception e)
this
.startpoint = startpoint;
}public
void
run()}
catch
(ioexception e)
finally
catch
(ioexception e)}}
}
2 將大檔案劃分為小模組,建立多個子執行緒執行檔案複製
public
class
ractest
randomaccessfile rafr =
newrandomaccessfile
(f1,
"r")
;// 讀入隨機流
randomaccessfile rafw =
newrandomaccessfile
(f2,
"rw");
// 寫出隨機流
long length = rafr.
length()
;// 讀取檔案的大學
rafw.
setlength
(length)
;// 設定目的檔案大小
int bord =
(int
) length/ copysize;
bord =
(int
) length % copysize ==
0? bord: bord+1;
for(
int i=
1;i)new
mythread
(f1,f2,i*copysize*
1024).
start()
; rafr.
seek(0
);rafw.
seek(0
);byte
by =
newbyte
[1024];
int len =0;
int maxsize =0;
while
((len = rafr.
read
(by))!=
-1&& maxsizerafr.
close()
; rafw.
close()
; thread.
sleep
(3000);
// 延時 3秒,保證所有執行緒執行完畢
system.out.
println
("複製完成");
}}
java IO流 字元流FileReader
1.字元流是什麼 字元流是可以直接讀寫字元的io流 字元流讀取字元,就要先讀取到位元組資料,然後轉為字元.如果要寫出字元,需要把字元轉為位元組再寫出.樣列 filereader fr new filereader txt int x fr.read system.out.println x char...
一 Java IO流複習
流是一組有順序的,有起點和終點的位元組集合,是對資料傳輸的總稱或抽象。即資料在兩裝置間的傳輸稱為流,流的本質是資料傳輸,根據資料傳輸特性將流抽象為各種類,方便更直觀的進行資料操作。根據處理資料型別的不同分為 字元流和位元組流 根據資料流向不同分為 輸入流和輸出流 位元組流和字元流的區別 1 讀寫單位...
Java IO流相關知識
一 io流的分類 reader inputstreamreader 節點流 bufferedreader 處理流 writer outputstreamwriter 節點流 bufferedwriter 處理流 printwriter inputstream fileinputstream 節點流 ...