1、Java 語言中I/O流分類:
分爲輸入流(Input Stream) 和輸出流(Output Stream)
分爲節點流(Node Stream) 和處理流(Processing Stream)
分爲字符流(Character Stream) 和字節流(Byte Stream)
人站在程序的角度來看,如果數據從外界傳入程序中,則爲輸入流,例如從鍵盤輸入數據到程序中;如果數據從程序中傳到外界,則爲輸出流,例如程序中的數據輸出到顯示器中,或者輸出到文件中。
Java語言中流是單向的,輸入流只能讀數據,輸出流只能寫數據。例外特例是:java.io.RandomAccessFile類,既可以從文件中讀數據,也可以向文件中寫數據。
從數據流所關聯的是數據源還是其他數據流,可以分爲節點流和處理流,節點流直接關聯到數據源,處理流封裝已經存在的流。
從傳輸數據的“顆粒大小”劃分,字節流以字節爲單位進行數據傳輸,字符流以字符爲單位進行數據傳輸,在Java語言中,以InputStream或OutputStream結尾的類型爲字節流,以Reader或Writer結尾的爲字符流。
2、InputStream 字節輸入流的父類
三個基本的read()方法
int read()
int read(byte[] buffer)
int read(byte[] buffer,int offset,int length)
其它方法
void close()
int available();
skip(long n);
boolean markSupportet() //測試inputstream 的各種子類是否具備做標記的功能
void mark(int readlimit); //對輸入流做標記
void reset(); //跳轉到標記處
3、OutputStream 字節輸出流的父類
三個基本的write()方法:
void write(int c);
void write(byte[] buffer);
void write(byte[] buffer,int offset,int length);
其它方法:
void close();
void flush(); //清空緩衝區
4、Reader 字符輸入流的父類
三個基本的read()方法
int read()
int read(byte[] cbuf)
int read(byte[] cbuf,int offset,int length)
其它方法
void close()
boolean ready(); //判斷輸入流是否準備就緒
skip(long n);
boolean markSupportet() //測試inputstream 的各種子類是否具備做標記的功能
void mark(int readlimit); //對輸入流做標記
void reset(); //跳轉到標記處
5、Writer 字符輸出流的父類
五個基本的write()方法:
void write(int c);
void write(char[] cbuf);
void write(char[] cbuf,int offset,int length);
void write(String string);
void write(String string,int offset,int length);
其它方法:
void close();
void flush(); //清空緩衝區
6、常用I/O流類型
FileInputStream 和FileOutputStream
FileInputStream用於讀取本地文件中字節數據,FileOutputStream用於將字節數據寫出到文件中