1涩馆、IO流行施,什么是IO?
I:Input
O:Output
通過IO可以完成硬盤文件的讀和寫魂那。
2蛾号、IO流的分類?
有多種分類方式:
一種方式是按照流的方向進行分類:
以內(nèi)存為參照物涯雅,
往內(nèi)存中去鲜结,叫做輸入,或者叫讀活逆。
從內(nèi)存中出來精刷,叫做輸出,或者叫寫蔗候。
另一種方式是按照讀取數(shù)據(jù)方式不同進行分類:
有的流是按照字節(jié)的方式讀取數(shù)據(jù)怒允,一次讀取一個字節(jié)byte,等同于一次讀取8個二進制
以Stream結(jié)尾的流全部為字節(jié)流
以Writer/Reader結(jié)尾的流全部為字符流
緩沖流
BufferedReader
public class BufferReaderTest01
{
public static void main(String[] args) throws IOException
{
FileReader reader=new FileReader("");
// 當(dāng)一個流的構(gòu)造方法中需要一個流的時候锈遥,這個被傳進來的流叫做:節(jié)點流误算。
// 外部負責(zé)包裝的這個流仰美,叫做:包裝流,還有一個名字叫:處理流儿礼。
BufferedReader br=new BufferedReader(reader);
//br.readLine()方法讀取一個文本行咖杂,但不帶換行符。
String s=null;
while ((s=br.readLine())!=null)
{
System.out.println(s);
}
//關(guān)閉流
//對于包裝類來說蚊夫,只需要關(guān)閉最外層流就行诉字,里面的節(jié)點流會自動關(guān)閉(通過查看源代碼)
br.close();
}
}
轉(zhuǎn)換流
InputStreamReader
public class BufferedReaderTest02
{
public static void main(String[] args) throws IOException
{
//字節(jié)流
FileInputStream in=new FileInputStream("D:\\draft");
//通過轉(zhuǎn)換流轉(zhuǎn)換(InputStreamReader將字節(jié)流轉(zhuǎn)換成字符流)
//in是節(jié)點流,reader是包裝流
InputStreamReader reader=new InputStreamReader(in);
//這個構(gòu)造方法只能傳一個字符流知纷,不能傳字節(jié)流
//reader是節(jié)點流壤圃,br是包裝流
BufferedReader br=new BufferedReader(reader);
//以上三行代碼可以嵌套使用
//BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("D:\\draft")));
String line=null;
while ((line=br.readLine())!=null)
{
System.out.println(line);
}
//關(guān)閉最外層
br.close();
}
}