字节输入流 InputStream
字節輸入流【InputStream】
?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.釋放資源
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
?注:?(len = fis.read()) != -1 這個是必須的,不能直接使用?fis.read()?!= -1
字節輸入流一次讀取多個字節的方法:
? ? ? ? int read(byte[ ] b) 從輸入流中讀取一定數量的字節,并將其存儲在緩沖區數組 b 中。
? ? 明確兩件事情:
? ? ? ? 1.方法的參數byte[]的作用?
? ? ? ? ? ? 起到緩沖作用,存儲每次讀取到的多個字節
? ? ? ? ? ? 數組的長度一把定義為1024(1kb)或者1024的整數倍
? ? ? ? 2.方法的返回值int是什么?
? ? ? ? ? ? 每次讀取的有效字節個數
? ? String類的構造方法
? ? ? ? String(byte[ ] bytes) :把字節數組轉換為字符串
? ? ? ? String(byte[ ] bytes, int offset, int length) 把字節數組的一部分轉換為字符串 offset:數組的開始索引 length:轉換的字節個數
總結
以上是生活随笔為你收集整理的字节输入流 InputStream的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一次写多个字节的方法 || 数据追加续写
- 下一篇: 字节流练习:图片复制