各位小夥伴們大家好,在之前的文章中,小編介紹了字節輸出流Java之字節輸出流OutputStream的簡單介紹,這次小編要介紹的是字節輸入流InputStream。
java.io.InputStream:字節輸入流,此抽象類是表示字節輸入流的所有類的超類。
定義了所有子類共性的方法:
1.int read()從輸入流中讀取數據的下一個字節。
2.int read(byte[] b)從輸入流中讀取一定數量的字節,並將其存儲到緩衝數組b中
3.void close()關閉此輸出流並釋放與該流關聯的所有系統資源。
抽象方法無法直接創建父類,我們需要用到抽象方法的子類如FileInputStream。
java.io.FileInputStream extends InputStream,FileInputStream:文件字節輸入流,作用:把硬碟文件中的數據,讀取到內存中使用。
構造方法:
FileInputStream (String name)
FileInputStream (File file)
參數:讀取文件的數據源
String name:文件路徑
File file:文件
構造方法的作用:
會創建一個FileInputStream對象會把FileInputStream對象指定構建方法中要讀取的文件
關於字節輸入流InputStream,小編也介紹的差不多了,接下來,小編要介紹的是讀取數據的一些原理(硬碟-->內存),java-->JVM--->OS-->OS讀取數據的方法-->讀取文件
字節輸入流的使用步驟(重點):
創建FileInputStream對象,構造方法中綁定要讀取的數據源使用FileInputStream對象中的方法read,讀取文件釋放資源代碼如下:
public class Demo01InputStream {
public static void main(String[] args) throws IOException {
//1.創建FileInputStream對象,構造方法中綁定要讀取的數據源
FileInputStream fis=new FileInputStream("D:\\BaiduNetdiskDownload\\c.txt");
//2.使用FileInputStream對象中的方法read,讀取文件
//int read()讀取文件中的一個字節並返回,讀取文件的末尾返回-1
/*int len1=fis.read();
System.out.println(len1);//讀取第一個字節
int len2=fis.read();
System.out.println(len2);//第二個字節
int len3=fis.read();
System.out.println(len3);//第三個字節*/
/*使用循環優化,不知道有多少個字節,使用while循環
while循環結束條件,讀取到-1結束*/
int len=0;//記錄讀取到的字節
while((len=fis.read())!=-1) {
System.out.println(len);
}
//釋放資源
fis.close();
}
}
小編來說一下上面代碼中的循環,其實上面的循環相當於一個布爾表達式(len=fis.read()!=-1:
fis.read():讀取一個字節len=fis.read():把讀取到的字節賦值給變量len(len=fis.read())!=-1:判斷變量len是否不等於-1關於字節輸入流InputStream的定義,使用步驟和原理等,小編就先說到這裡,希望這篇文章可以幫到大家,也歡迎各位小夥伴補充和糾錯。