Java日誌第37天 2020.8.11
阿新 • • 發佈:2020-08-11
位元組輸入流
java.lang.InputStream
此抽象類是表示位元組輸入流的所有類的超類
所有子類中共性的方法:
1. int read():從輸入流中讀取資料的下一個位元組
2. int read(byte[] b) :從輸入流中讀取一定數量的位元組,並將其儲存在緩衝區陣列b中
3. void close():關閉此輸入流並釋放與該流關聯的所有系統資源
FileInputStream
檔案位元組輸入流
java.io.FiIeInputStream entends InputStream
作用:把硬碟檔案中的資料讀取到記憶體中使用
構造方法
- FileInputStream(String name)
- FileInputStream(File file)
讀取一個位元組
import java.io.FileInputStream; import java.io.IOException; public class Demo01InputStream { public static void main(String[] args) throws IOException { //建立FileInputStream物件,構造方法中繫結要讀取的資料來源 FileInputStream fis = new FileInputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt");//使用FileInputStream物件中的方法read,讀取檔案 //read方法一次讀取一個位元組,讀取至檔案末尾返回-1 int len = fis.read(); System.out.println((char) len); len = fis.read(); System.out.println((char) len); len = fis.read(); System.out.println((char) len); //釋放資源 fis.close(); } }
結果如下:
以上的重複程式碼可以使用while迴圈
import java.io.FileInputStream; import java.io.IOException; public class Demo01InputStream { public static void main(String[] args) throws IOException { //建立FileInputStream物件,構造方法中繫結要讀取的資料來源 FileInputStream fis = new FileInputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt"); //使用FileInputStream物件中的方法read,讀取檔案 //read方法一次讀取一個位元組,讀取至檔案末尾返回-1 int len = 0; while((len = fis.read()) != -1){ System.out.println((char) len); } //釋放資源 fis.close(); } }
讀取多個位元組
import java.io.FileInputStream; import java.io.IOException; import java.util.Arrays; public class Demo01InputStream { public static void main(String[] args) throws IOException { //建立FileInputStream物件,構造方法中繫結要讀取的資料來源 FileInputStream fis = new FileInputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt"); //使用FileInputStream物件中的方法read,讀取檔案 byte[] bytes = new byte[2]; int len = fis.read(bytes); System.out.println("len = "+len); System.out.println(new String(bytes)); len = fis.read(bytes); System.out.println("len = "+len); System.out.println(new String(bytes)); len = fis.read(bytes); System.out.println("len = "+len); System.out.println(new String(bytes)); //釋放資源 fis.close(); }
結果如下: