黑馬程式猿——JAVA基礎——IO流

來源:互聯網
上載者:User

標籤:roi   input   readline   同步   str   java   stream   rgb   androi   

----------android培訓、java培訓、java學習型技術部落格、期待與您交流!------------ 一、

一、IO流的三種分類方式

    1.按流的方向分為:輸入資料流和輸出資料流

    2.按流的資料單位不同分為:位元組流和字元流

    3.按流的功能不同分為:節點流和處理流

    二、IO流的四大抽象類別:

    字元流:Reader Writer

    位元組流:InputStream(讀資料)

    OutputStream(寫資料)

    三、InputStream的基本方法

    int read() throws IOException 讀取一個位元組以整數形式返回,假設返回-1已到輸入資料流的末尾

    void close() throws IOException 關閉流釋放記憶體資源

    long skip(long n) throws IOException 跳過n個位元組不讀

    四、OutputStream的基本方法

    void write(int b) throws IOException 向輸出資料流寫入一個位元組資料

    void flush() throws IOException 將輸出資料流中緩衝的資料所有寫出到目的地

    五、Writer的基本方法

    void write(int c) throws IOException 向輸出資料流寫入一個字元資料

    void write(String str) throws IOException將一個字串中的字元寫入到輸出資料流

    void write(String str。int offset,int length)

    將一個字串從offset開始的length個字元寫入到輸出資料流

    void flush() throws IOException

    將輸出資料流中緩衝的資料所有寫出到目的地

    六、Reader的基本方法

代碼具體解釋:

System.in

    int read() throws IOException 讀取一個字元以整數形式返回。假設返回-1已到輸入資料流的末尾

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
 * System.in是InputStream static final的,包括了多態,叫同步式或者堵塞式
 * 讀取ASCII和二進位檔案(圖片)。而字母就是ASCII字元(個人理解)。
 */
public class TestSystemIn {
 public static void main(String[] args) {
  InputStreamReader isr = new InputStreamReader(System.in);
  BufferedReader br = new BufferedReader(isr);//有readline
  String s = null;
  try {
   s = br.readLine();
   while(s!=null) {
    if(s.equalsIgnoreCase("exit")) {
     break;
    }
    System.out.println(s.toUpperCase());
    s = br.readLine();
   }
   br.close();
  }catch (IOException e) {
   e.printStackTrace();
  }
 }
}

八,FileInputStream

import java.io.*;
public class TestFileInputStream {
 public static void main(String[] args) {
  FileInputStream in = null;
  try {
   in = new FileInputStream("e:/1.txt");
  }catch(FileNotFoundException e) {
   System.out.println("找不到檔案");
   System.exit(-1);
  }
  //以下表示找到了檔案
  int tag = 0;
  try {
   long num = 0;
   while((tag = in.read())!=-1) {
    //read是位元組流,若是有漢字就顯示不正常了,使用reader就攻克了
    System.out.print((char)tag);
    num++;
   }
   in.close();
   System.out.println();
   System.out.println("共讀取了" + num + "字元");
  }catch(IOException e1) {//read和close都會拋出IOException
   System.out.println("檔案讀取錯誤");
   System.exit(-1);
  }
 }
}


黑馬程式猿——JAVA基礎——IO流

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.