1. 程式人生 > >程式小白---IO流之輸入輸出流

程式小白---IO流之輸入輸出流

沒錯又是我!!!今天繼續寫部落格大笑大笑大笑

今天學了IO流

一:那麼首先什麼是IO流?

首先我來說一下流的概念

1.什麼是流?

流是一個抽象的概念。當Java程式需要從資料來源讀取資料時,會開啟一個到資料來源的流。

資料來源可以是檔案,記憶體或者網路等。同樣,當程式需要輸出資料到目的地時也一樣會開啟一個流,資料目的地也可以是檔案、記憶體或者網路等。

流的建立是為了更方便地處理資料的輸入輸出。

瞭解了流我們就可以進行輸入輸出流的概念進行理解了

流分為位元組流和字元流。位元組流也稱為原始資料,需要使用者讀入後進行相應的編碼轉換。

而字元流的實現是基於自動轉換的,讀取資料時會把資料按照JVM的預設編碼自動轉換成字元。


位元組流由InputStream和OutputStream處理,而字元流由Reader和Writer處理。

Reader和Writer是Java後加入的處理類,出於讓資料的處理更方便的目的。


按操作資料分為:位元組流和字元流.
按流的方向分為:輸入和輸出流.

流的單位不同:位元組流、字元流

流的功能不同:節點流、處理流

話不多說上圖啦:

這裡寫圖片描述

下面結合File檔案類的知識點來進行一些操作:

(1):將文字的內容讀取到控制檯

try {
FileInputStream input = new FileInputStream("d://lenovo//hehe.txt");
int n =input.read();
while(n>-1){
System.out.print((char)n);
n = input.read();
}
input.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


(2):將Strin裡的字串寫入到文字

String a = "hello xiaoyumi! 小玉米";
try {
FileOutputStream out = new FileOutputStream("d://lenovo//hehe.txt");
        out.write(a.getBytes());
        out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


(3):將一個txt裡的檔案放入到另一個txt(複製的原理)

try {
FileInputStream input = new FileInputStream("d://lenovo//hehe.txt");
FileOutputStream out  = new FileOutputStream("d://lenovo//haha.txt");
int n = input.read();
while(n!=-1){
out.write(n);
n= input.read();
}
out.close();
input.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

宣告:部分內容來自http://blog.csdn.net/andloves/article/details/48787707