IO流的操作

2021-08-21 16:55:25 字數 2175 閱讀 5274

在計算機看來,檔案和資料夾(目錄,路徑)是一種東西。通過file類來完成對檔案的操作。其構造方法如下:

file(string pathname):通過將給定路徑名字串轉換成抽象路徑名來建立乙個新 file 例項。

其常見方法有:

string

list()

返回由此抽象路徑名所表示的目錄中的檔案和目錄的名稱所組成字串陣列

file

listfiles()

返回乙個抽象路徑名陣列,這些路徑名表示此抽象路徑名所表示目錄中的檔案

案例:列出乙個目錄下所有的檔案(資料夾不顯示)

public class test 

}else

}public static void main(string args) throws exception

}

說明:字段 separator表示的是與系統有關的預設名稱分隔符,出於方便考慮,它被表示為乙個字串。(windows用\,linux用/,使用separator自動調整)

常見的字元編碼

為了保證不出現亂碼,在系統中所有的編碼格式最好統一

案例1,本機的字元編碼格式:

public static void main(string args) throws exception
案例2,亂碼的產生:

public static void main(string args) throws exception
流可以分為兩種,一種是位元組流,以位元組為單位傳輸的流(萬能):

另一種為字元流,以字元為單位傳輸的流,只適合傳遞字元資料:

說明:1.單位換算

2.讀寫判斷

常見方法:

void

close()

關閉此輸入流並釋放與該流關聯的所有系統資源

intread(byte b)

從輸入流中讀取一定數量的位元組並將其儲存在緩衝區陣列 b 中。將位元組資料讀入b中並返回長度

案例,讀資料:

public class test2 

}

void

close()

關閉此輸出流並釋放與此流有關的所有系統資源

void

write(byte b, int off, int len)

將指定位元組陣列中從偏移量 off (起始位)開始的 len (寫多長)個位元組寫入此輸出流

void

write(byte b)

將 b.length 個位元組從指定的位元組陣列寫入此輸出流

案例,寫資料:

public class test1 

}

只能操作字元資料,和位元組流類似

案例,讀資料:

public class test4 

}

案例,寫資料:

public class test3 

}

帶緩衝區的reader,其構造方法為:bufferedreader(reader in)。常見方法為:

案例,標準的鍵盤輸入:

public static void main(string args) throws exception
列印流為printstream,使用如下:

public static void main(string args) throws exception
物件存在於記憶體中,不方便傳輸,物件的序列化就是為了方便物件傳輸的。其中:

案例,首先建立乙個物件:

//實現serializable,就可以被序列化

public class student implements serializable

之後序列化:

public static void main(string args) throws exception
反序列化:

public static void main(string args) throws exception
說明:hibernate框架會用到序列化

基於流的I O操作

一 對快取的操作 include void setbuf file fp,char buf void setbuffer file fp,char buf,size t size void setlinebuf file fp int setvbuf file fp,char buf,int mod...

IO流操作的規律

io流操作中,首先要明確開發中具體要使用哪個流物件。1,明確資料來源,資料匯 資料目的 其實就是在明確要使用的io體系。inputstream outpurstream reader writer 需求中操作的是源 意味著是讀,inputstream reader 需求中操作的是目的 意味著是寫 o...

IO流的操作規律

1 明確源和目的 源 inputstream reader 目的 outputstream writer 2 明確資料是否是純文字資料 源 是純文字 reader 不是純文字 inputstream 目的 是純文字 writer 不是純文字 outputstream 先明確體系是哪個 3 明確具體的...