1、 解析available\skip\close\read(int[] a)方法以及使用read方法循環打印出全部的內容。java
package com.bjpowernode.java_learning; import java.io.*; public class D96_1_CircleRead { public static void main(String[] args) throws Exception{ FileInputStream fis = new FileInputStream("C:\\Users\\lenovo1\\Workspaces\\MyEclipse CI\\Java_learning\\src\\com\\bjpowernode\\java_learning\\D95_1_FileInputStreamAnalysis.java"); byte[] bytes = new byte[1024]; //1.available方法 System.out.println(fis.available()); System.out.println("==========="); //2.skip方法 fis.skip(2);//跳過讀取 兩個字節 System.out.println("==========="); //3.循環打印出內容 while(true) { int temp = fis.read(bytes); if(temp==-1) break; //將byte數組中有效的數據轉換成字符串 System.out.print(new String(bytes,0,temp)); //注意這裏是字符串的截取,咱們須要知曉這裏read這個方法的返回值,因此至關於咱們建立了一個數組,用來存儲每一次 //讀到的1kb,而後1kb,1kb的輸出。之因此會使用0到temp,前面讀取的時候都好說,均可以把數組填滿了,可是當讀到 //最後的時刻的時候,就會有佔據了數組的一部分,若是咱們使用定長1024那麼就會,把上一次的部份內容打印了出來 } //4.int read(byte[] b)從輸入流中最多b.length個字節的數據讀入到byte數組中 System.out.println("==========="); //能夠看出available方法是用於查看還剩餘多少個字節沒有讀取 System.out.println(fis.available()); //5.記得關閉這個流 fis.close(); } }
2、源碼:node
D96_1_CircleRead.javagit
https://github.com/ruigege66/Java/blob/master/D96_1_CircleRead.javagithub
2.CSDN:https://blog.csdn.net/weixin_44630050數組
3.博客園:https://www.cnblogs.com/ruigege0000/微信
4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料學習