Java IO流 隨機流2

2021-08-28 10:02:29 字數 2277 閱讀 8849

本文**

本文主要介紹隨機流的斷點續傳的具體使用

斷點續傳原理

首先把隨機訪問的檔案物件看作儲存在檔案系統中的乙個大型 byte 陣列,然後通過指向該 byte 陣列的游標或索引(即:檔案指標 filepointer)在該陣列任意位置讀取或寫入任意資料

相關方法說明

1 物件宣告

randomaccessfile raf = new randomaccessfile(file file, string mode);

其中 mode 的值可選 r w rw

2 獲取當前檔案的位置

int randomaccessfile.getfilepointer();

3 改變檔案指標位置(相對位置,絕對位置)

1 絕對位置:randomaccessfile.seek(int index);

2 相對位置:randomaccessfile.skipbyte(int step);// 相對當前位置

4 給寫入檔案預留空間

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 節點流 ...