Java讀取檔案-BufferedReader/FileReader/InputStreamReader/FileInputStream的關係和區別

來源:互聯網
上載者:User

標籤:writer   java代碼   技術   輸出   inf   需要   reader   adl   技術分享   

一、Java讀取和隱藏檔資料流Java讀取檔案,實際是將檔案中的位元組流轉換成字元流輸出到螢幕的過程 這裡面涉及到兩個類:InputStreamReader和OutputStreamWriterInputStreamReader:將位元組流轉換成字元流OutputStreamWriter:將字元流轉換成位元組流 InputStreamReader繼承Reader類OutputStreamWriter繼承Writer類 二、BufferedReader/FileReader/InputStreamReaderReader是用於將檔案中的內容讀出來;Writer用於將字元寫入到檔案中去。Reader是用於讀取字元流的抽象類別1、BufferedReader/FileReader/InputStreamReader的繼承關係如下:所以通過BufferedReader/FileReader/InputStreamReader這三個方法讀出來的檔案,都可以直接輸出字元2、BufferedReader/FileReader/InputStreamReader的使用方法及區別InputStreamReader:可以指定字元編碼格式,入參傳遞InputStream對象InputStream對象定義方法有兩種。System.in或FileInputStream對象System.in:讀取控制台的輸入內容FileInputStream:可通過檔案路徑名pathname或File對象執行個體化
InputStreamReader inputstreamreader1=new InputStreamReader(System.in);InputStreamReader inputstreamreader2=new InputStreamReader(new FileInputStream("/opt/xxx"));InputStreamReader inputstreamreader3=new InputStreamReader(new FileInputStream(new File("/opt/xxx")));
 FileReader:入參直接傳遞檔案pathname或File對象FileReader是InputStreamReader的子類,不能指定字元編碼,其他與InputStreamReader基本類似
FileReader f1=new FileReader("/opt/xxx.txt");FileReader f2=new FileReader(new File("/opt/xxx.txt"));

 

BufferedReader:入參有Reader對象和緩衝區大小(可不寫)從緩衝區中讀取字元流,提高效率;緩衝區大小:預設8192,預設不需要傳遞建議都要用這個類去讀取檔案
BufferedReader buffered_filereader=new BufferedReader(new FileReader(filename));BufferedReader buffered_inputstreamreader=new BufferedReader(new InputStreamReader(fileinputstream));
 三、FileInputStream所有位元組輸入資料流的超類,用於位元組流的讀取。上面已經講了,應用在執行個體化InputStreamReader對象時的一種入參 可以傳遞檔案路徑名pathname或File對象執行個體化 四、讀取檔案BufferedReader對象使用readLine()方法判斷字串是否為null判斷是否為檔案末尾
String read;while((read=buffered_filereader.readLine())!=null){    System.out.println(read);}
 Reader對象使用read()方法判斷是否為-1,來判斷是否為檔案末尾
int i;while ((i=filereader.read())!=-1){    System.out.print((char)i);}
 五、Java代碼1、InputSteamReader
String filename="/opt/xxx.log"; FileInputStream fileinputstream=new FileInputStream(filename);InputStreamReader inputstreamreader=new InputStreamReader(fileinputstream);int i;while ((i=inputstreamreader.read())!=-1){    System.out.print((char)i);}
 2、FileReader
String filename="/opt/xxx.log"; FileReader filereader=new FileReader(filename);int i;while ((i=filereader.read())!=-1){    System.out.print((char)i);}
 3、BufferedReader(入參FileReader)
String filename="/opt/xxx.log"; FileReader filereader=new FileReader(filename);BufferedReader buffered_filereader=new BufferedReader(filereader);String read;while((read=buffered_filereader.readLine())!=null){    System.out.println(read);}
 4、BufferedReader(入參InputStreamReader)
String filename="/opt/xxx.log";FileInputStream fileinputstream=new FileInputStream(filename);InputStreamReader inputstreamreader=new InputStreamReader(fileinputstream);BufferedReader buffered_inputstreamreader=new BufferedReader(inputstreamreader);String read;while((read=buffered_inputstreamreader.readLine())!=null){    System.out.println(read);}

Java讀取檔案-BufferedReader/FileReader/InputStreamReader/FileInputStream的關係和區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.