package com.itheima.demo02.InputStream;java
import java.io.FileInputStream;
import java.io.IOException;數組
/*優化
java.io.InputStream:字節輸入流 此抽象類是表示字節輸入流的全部類的超類。 定義了全部子類共性的方法: int read()從輸入流中讀取數據的下一個字節。 int read(byte[] b) 從輸入流中讀取必定數量的字節,並將其存儲在緩衝區數組 b 中。 void close() 關閉此輸入流並釋放與該流關聯的全部系統資源。 java.io.FileInputStream extends InputStream FileInputStream:文件字節輸入流 做用:把硬盤文件中的數據,讀取到內存中使用 構造方法: FileInputStream(String name) FileInputStream(File file) 參數:讀取文件的數據源 String name:文件的路徑 File file:文件 構造方法的做用: 1.會建立一個FileInputStream對象 2.會把FileInputStream對象指定構造方法中要讀取的文件 讀取數據的原理(硬盤-->內存) java程序-->JVM-->OS-->OS讀取數據的方法-->讀取文件 字節輸入流的使用步驟(重點): 1.建立FileInputStream對象,構造方法中綁定要讀取的數據源 2.使用FileInputStream對象中的方法read,讀取文件 3.釋放資源
*/
public class Demo01InputStream {code
public static void main(String[] args) throws IOException { //1.建立FileInputStream對象,構造方法中綁定要讀取的數據源 FileInputStream fis = new FileInputStream("09_IOAndProperties\\c.txt"); //2.使用FileInputStream對象中的方法read,讀取文件 //int read()讀取文件中的一個字節並返回,讀取到文件的末尾返回-1 /*int len = fis.read(); System.out.println(len);//97 a len = fis.read(); System.out.println(len);// 98 b len = fis.read(); System.out.println(len);//99 c len = fis.read(); System.out.println(len);//-1 len = fis.read(); System.out.println(len);//-1*/ /* 發現以上讀取文件是一個重複的過程,因此能夠使用循環優化 不知道文件中有多少字節,使用while循環 while循環結束條件,讀取到-1的時候結束 布爾表達式(len = fis.read())!=-1 1.fis.read():讀取一個字節 2.len = fis.read():把讀取到的字節賦值給變量len 3.(len = fis.read())!=-1:判斷變量len是否不等於-1 */ int len = 0; //記錄讀取到的字節 while((len = fis.read())!=-1){ System.out.print(len);//abc } //3.釋放資源 fis.close(); }
}對象