day32 學習總結

2021-10-20 11:12:54 字數 3792 閱讀 3851

檔案的傳輸,輸入與輸出

按流的方向可以分為:輸入流和輸出流

按流的型別可以分為:位元組流和字元流

字元流主要用於文字檔案,可以通過記事本直接開啟的檔案

使用需要通過其子類建立流物件
fileoutputstream—檔案位元組輸出流:將內容輸出到文字檔案中
構造方法:

fileoutputstream(file file)//通過指定的檔案向其寫入資料

fileoutputstream(string name)//通過指定檔案的檔名稱向其寫入資料

方法:void close()//關閉自己輸出流並釋放系統資源

void write(int b)//將指定的位元組寫入檔案

void write(byte bytes)//將指定的位元組輸出組寫入檔案

void write(byte bytes,int offset,int len)//將指定的位元組陣列的一部分寫入檔案中,offset表示陣列初始位置,len表示寫入的陣列長度

bufferedoutputstream----位元組緩衝輸出流(高效的位元組輸出流)
構造方法:

bufferedoutputstream(outputstream out)//通過位元組輸出流物件建立高效的位元組輸出流,

方法:void close()//關閉自己輸出流並釋放系統資源

void write(int b)//將指定的位元組寫入檔案

void write(byte bytes)//將指定的位元組輸出組寫入檔案

void write(byte bytes,int offset,int len)//將指定的位元組陣列的一部分寫入檔案中,offset表示陣列初始位置,len表示寫入的陣列長度

使用時需要通過其子類建立流物件
fileinputstream—檔案位元組輸入流:將文字檔案中的內容讀取出來
構造方法:

fileinputstream(file file)//通過指定的檔案讀取資料

fileinputstream(string name)//通過指定檔案的檔名稱讀取資料

方法:void close()//關閉位元組輸入流並釋放系統資源

void int read()//從指定的檔案中讀取乙個位元組

void int read(byte bytes)//從指定的檔案中讀取乙個位元組陣列

void int read(byte bytes,int offset,int len)//從指定的檔案中讀取乙個位元組陣列的一部分,offset表示陣列初始位置,len表示寫入的陣列長度

注意:在read方法中,如果讀取資料已到檔案末尾,再讀取時會返回-1,表示檔案已經讀取完畢

bufferedinputstream—位元組緩衝輸入流物件(高效的位元組輸入流)
構造方法:

bufferedinputstream(inputstream in)//通過位元組輸入流建立高效的位元組輸入流,傳遞的inputstream物件,可以通過其子類實現

方法:void close()//關閉位元組輸入流並釋放系統資源

void int read()//從指定的檔案中讀取乙個位元組

void int read(byte bytes)//從指定的檔案中讀取乙個位元組陣列

void int read(byte bytes,int offset,int len)//從指定的檔案中讀取乙個位元組陣列的一部分,offset表示陣列初始位置,len表示寫入的陣列長度

注意:在read方法中,如果讀取資料已到檔案末尾,再讀取時會返回-1,表示檔案已經讀取完畢

練習:

通過普通位元組輸入輸出流和位元組緩衝輸入輸出流來複製檔案,比較執行的速度

比較可以表明通過位元組緩衝輸入輸出流,並且通過一次讀取乙個陣列的方法來實現,執行速度最快

public class iostream 

//高效位元組輸入流,一次數以乙個位元組陣列//218

public static void copymp4_4(string s,string s1) throws ioexception

bos.close();

bis.close();

}//高效位元組輸入流,一次數以乙個位元組//1941

public static void copymp4_3(string s,string s1) throws ioexception

bos.close();

bis.close();

}//位元組輸入流,一次輸入乙個位元組陣列//459

public static void copymp4_2(string s,string s1) throws ioexception

fos.close();

fis.close();

}//位元組輸入流,一次輸入乙個位元組//184518

public static void copymp4(string s,string s1) throws ioexception

fos.close();

fis.close();

}}

outputstreamwriter—字元流通向位元組流的橋梁–編碼
構造方法:

outputstreamwriter(outputstream out)//通過位元組輸出流物件建立預設的字元編碼的字元輸出流

outputstreamwriter(outputstream out,string charsetname)//通過位元組輸出流物件建立指定的字元編碼的字元輸出流

方法:void close()//關閉流,關閉前需要重新整理

void flush()//重新整理流

void write(int c)//寫入單個字元

void write(string str ,int offset ,int len)//寫入字串的一部分

void write(char chs , int offset ,int len)//寫入字元陣列的一部分

filewriter—寫入字元的便捷類
繼承自outputstreamwriter

通過這個便捷類無需建立位元組輸出流物件

構造方法:

filewriter(file file)//通過指定的檔案來建立物件

filewriter(string filename)//通過指定檔案的檔名建立物件

方法: 繼承父類中outputstreamwriter的方法

inputstreamreader—位元組流通向字元流的橋梁–解碼
構造方法:

inputstreamreader(inputstream in)//通過預設編碼讀取字元

inputstreamwriter(inputstream in,string charsetname)//通過指定編碼讀取字元

方法:void close()//關閉流

int read()//讀取單個字元

int read(char chs ,int offset ,int len)//讀取字串陣列的一部分

filereader—字元輸入流的便捷類
無需通過inputstream來建立物件

構造方法:

filereader(file file)//通過指定的檔案來建立物件,讀取資料

filereader(string filename)//通過指定檔案的檔名建立物件,讀取資料

方法: 繼承父類中inputstreamwriter的方法

Linux學習之路 day 3(2)

一 執行級別 基本語法 init 執行級別,例如 init 3 init 5。忘記root密碼,如何找回?思路 通過一定的方式進入單使用者模式 不同版本的linux不一樣 然後修改root密碼。這是因為單使用者模式中,root不需要密碼就可以登入,這時就可以用passwd來修改密碼。設定linux當...

python學習筆記 day3(2)

int x,base x 有兩種 字串 數字 若 x 為純數字,則不能有base引數,主要用於 x 取整 int 3.14 3 int 11.5 11 如果 x 為字串,則 base 引數可選。base 引數存在時,視 x 為 base型別的數字,並將其轉為10進製。如果 x 不符合 base 規則...

Day3 2 函式之遞迴

定義 乙個函式在 內部呼叫自己,就稱為遞迴.如何讓10不停的除以2,直到不能除為止.n 10 while true n int n 2 print n if n 0 break 使用while迴圈可以實現.但是如果不用迴圈,該怎麼實現呢?defcalc n n int n 2 print n if ...