一、 解析available\skip\close\read(int[] a)方法以及使用read方法迴圈列印出所有的內容。 package com.bjpowernode.java_learning; import java.io.*; public class D96_1_CircleRea ...
一、 解析available\skip\close\read(int[] a)方法以及使用read方法迴圈列印出所有的內容。
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(); } }
二、源碼:
D96_1_CircleRead.java
https://github.com/ruigege66/Java/blob/master/D96_1_CircleRead.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料