達內課程 RandomAccessFile(下)

2021-08-11 21:29:30 字數 3152 閱讀 4935

seek(int position)//定位下標到指定位置

getfilepointer()//獲得下標當前位置

練習:檔案加密解密,單位元組實現

public

class test

system.out.println("key:");

int key = new scanner(system.in).nextint();

trycatch(exception e)

}private

static

void

encript(file f, int key) throws exception

raf.close();}}

之前的檔案內容

輸出結果

請輸入檔案路徑

d:/abc/f2

key:

1加密/解密完成

再次執行還原為原來的內容

練習:檔案加密解密,多位元組實現

單位元組實現效率低

public

class test

system.out.println("key:");

int key = new scanner(system.in).nextint();

trycatch(exception e)

}private

static

void

encript(file f, int key) throws exception}}

其他方法writeint(int i)//輸出int的4個位元組值,完整輸出

writedouble(double d)//輸出double的8個位元組值,完整輸出

……writefloat等都有對應的方法

writeutf(string s)//先輸出2個位元組,表示字串的位元組長度,在輸出相應字串的位元組值,例如

「abc」 00 03 61 62 63

readint()//讀4個位元組轉成int

readdouble()//讀8個位元組轉成double

…… readutf()//先讀取兩個位元組,來確定字串的位元組長度,再讀取位元組值轉成string

讀取結束再讀取,出現eofexception

eof-end of file

栗子

public static void main(string args) throws exception
輸出結果

輸出末尾位元組

61 62 63

raf.writeint(97);

raf.writeint(98);

raf.writeint(99);

輸出完整4個位元組

00 00 00 61 

00 00 00 62

00 00 00 63

short兩個位元組,所以輸出

raf.writeshort(100);
00 64

布林值只有1個位元組,false是0

raf.writeboolean(false);
所以輸出

00

char兩個位元組

raf.writechar('中');
4e 2d

raf.writeutf("abc中文");
00 09 9個位元組

61 62 63 e4 b8 ad e6 96 87

float8個位元組

raf.writedouble(3.14);
40 09 1e b8 51 eb 85 1f

栗子:讀取

//檔案讀取

raf.seek(0);

system.out

.println(raf.read());

system.out

.println(raf.read());

system.out

.println(raf.read());

system.out

.println(raf.readint());

system.out

.println(raf.readint());

system.out

.println(raf.readint());

system.out

.println(raf.readshort());

system.out

.println(raf.readboolean());

system.out

.println(raf.readchar());

system.out

.println(raf.readutf());

system.out

.println(raf.readdouble());

輸出結果

97

9899

9798

99100

false

中abc中文

3.14

達內課程 File用法 下

檔案列表方法 list 返回string,包含子檔案,子目錄名 listfiles 返回file,包含子檔案,子目錄的file物件 栗子 file dir new file c windows string names dir.list for string s names file files d...

達內課程 pull解析xml

這裡使用的是之前的books.xml private void parsebookxmlbypull throws ioexception,xmlpullparserexception else if name.equals book else break 結束標記 case xmlpullpars...

達內課程 Set集合和Collection

hashset treeset set不重複的資料集 hashset 內部封裝hashmap物件 使用hashmap的鍵這一列來存放物件 裡邊的資料不重複且無序 建立物件 hashset set newhashset treeset 內部封裝treemap物件 使用treemap的鍵這一列來存放物件...