程式小白---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