檔案的傳輸,輸入與輸出
按流的方向可以分為:輸入流和輸出流
按流的型別可以分為:位元組流和字元流
字元流主要用於文字檔案,可以通過記事本直接開啟的檔案
使用需要通過其子類建立流物件
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 ...