I/O是input/output的縮寫,即輸入輸出系統。
I/O操作即從數據源中讀取數據,以及將數據寫入到數據目的地中。讀的來源(如文件、鍵盤、網絡)和寫的目的地(如文件、屏幕、網絡)分為很多種。
數據的流向以java程序為參照物,數據進入到程序中使用輸入流,數據從程序中出去則使用輸出流。
“流”:在數據源和程序之間建立的用于數據流通的管道,數據通過管道一點點的流入/流出。
I/O的分類:
輸入流/輸出流,字節流/字符流,節點流/處理流
I/O當中字節流的核心類

InputStream類和OutputStream類是所有字節流類的父類,兩個類都是抽象類。FileInputStream是InputStream的常用子類,用于從硬盤中讀取數據。FileOutputStream是OutputStream的常用子類,用于把數據寫入硬盤中。
核心類的核心方法:
InputStream:
int read(byte [] b, int off, int len)
read方法用于讀取數據,第一個參數為byte類型的數組,用于存放讀取到的數據。第二個參數為偏移量,規定讀取的數據從數組的指定位置開始存放。第三個參數表示數組的長度,即read每次可讀取數據的量。該方法的返回值為讀取到的數據的字節數。
OutputStream:
void write(byte [] b, int off, int len)
write方法用于寫入數據,第一個參數為要寫入的數據,第二個參數為偏移量,規定數據從數組的指定位置開始寫入,第三個參數表示要往硬盤中寫入多少數據。
例子:讀取文件和寫入文件
import java.io.*; //導入I/O包中的類class Test{public static void main(String args[]){FileInputStream fis = null;//聲明輸入流引用FileOutputStream fos = null;//聲明輸出流引用try{//生成輸入流對象,定位文件fis = new FileInputStream("F:/Android/Java4Android/32/src/a.txt");//生成byte數組存取數據byte [] b = new byte[15];//調用read方法讀取數據并返回數據的大小int bLen = fis.read(b,0,b.length);//生成輸出流對象,生成文件fos = new FileOutputStream("F:/Android/Java4Android/32/src/b.txt");//文件不存在會自動生成//調用write方法寫入數據fos.write(b,0,bLen);}catch(Exception e){System.out.PRintln(e);}}}
//打印byte數組的內容for(int i = 0; i< b.length; i++){System.out.println(b[i]);}
//還原成字符串String s =new String (b);s = s.trim();//去掉字符串首尾空格和空字符System.out.println(s);
新聞熱點
疑難解答