----------- android培訓、java培訓、java學習型技術博客、期待與您交流! ------------
這幾天在學IO流,今天在這裏做一個總結
四個基類流對象
輸入流:InputStream 和 Reader //都是抽象類,本身不能創建實例
|------->FileInputStream 和 FileReader //用與讀取文件的輸入流,執行輸入
FileInputStream fis=new FileInputStream("FileInputStreamTest.java");//創建字節輸入流,讀取的文件是FileInputStreamTest.java
byte[] bbuf=new byte[1024]; //創建一個長度爲1024的"竹筒",相當於緩存區
int hasRead=0; //用於保存實際讀取得字節數
while((hasRead=fis.read(bbuf))!=-1) //重複"取水"過程,讀到文件尾爲-1
{
System.out.println(new String(bbuf,0,hasRead));//取出"竹筒"中的水滴(字節),將字節數組轉換成字符串輸出
}
fis.close();
FileReader fr=new FileReader("FileReaderTest.java");//創建字節輸入流,讀取的文件是FileInputStreamTest.java
char[] cbuf=new char[1024]; //創建一個長度爲1024的"竹筒",相當於緩存區
......
輸出流:OutputStream和 Writer
|------->FileOutputStream 和 FileWriter //用與寫入到文件的輸出流,執行輸出
FileInputStream fis=new FileInputStream("FileInputStreamTest.java");//創建字節輸入流,讀取的文件是FileInputStreamTest.java
FileOutputStream fis=new FileOutputStream("FileInputStreamTest_Copy.txt");//創建字節輸出流,寫入到的文件是FileInputStreamTest_Copy.txt
byte[] bbuf=new byte[1024]; //創建一個長度爲1024的"竹筒",相當於緩存區
int hasRead=0; //用於保存實際讀取得字節數
while((hasRead=fis.read(bbuf))!=-1) //重複"取水"過程,讀到文件尾爲-1
{
fos.write(bbuf,0,hasRead); //每讀取一次,即寫入文件輸出流
}
fis.close(); //關閉流資源
字節流:InputStream 和 OutputStream //操作的最小數據單位是8位的字節
字符流:Reader 和 Writer //操作的最小數據單位是16位的字符
我們發現其實IO流是很有規律:
現在付上一個表,將基本的IO流對象列出來:
分類 |
字節輸入流 |
字節輸出流 |
字符輸入流 |
字符輸出流 |
抽象基類 |
InputStream |
OutputStream |
Reader |
Writer |
訪問文件 |
FileInputStream |
FileOutputStream |
FileReader |
FileWriter |
訪問數組 |
ByteArrayInputStream |
ByteArrayOutputStream |
CharArrayReader |
CharArrayWriter |
訪問管道 |
PipedInputStream |
PipedOutputStream |
PipedReader |
PipedWriter |
訪問字符串 |
|
|
StringReader |
StringWriter |
緩衝流 |
BufferedInputStream |
BufferedOutputputStream |
BufferedReader |
BufferedWriter |
轉換流 |
|
|
InputStreamReader |
OutputStreamWriter |
對象流 |
ObjectInputStream |
ObjectOutputStream |
|
|
抽象基類 |
FilterInputStream |
FilterOutputStream |
FilterReader |
FilterWriter |
打印流 |
|
PrintStream |
|
PrintWriter |
推回輸入流 |
PushbackInputStream |
|
PushbackReader |
|
特殊流 |
DataInputStream |
DataOutputStream |
|
|
----------- android培訓、java培訓、java學習型技術博客、期待與您交流! ------------