一、InputStream類概述
InputStream類是Java中所有輸入流的超類,它提供了一組公共的方法供子類使用。InputStream類定義了諸如read()、skip()、available()等常用方法,這些方法在讀取輸入流時非常實用。
InputStream類是一個抽象類,不能被實例化,但是它有許多具體的子類,如FileInputStream、ByteArrayInputStream、PipedInputStream等。
下面是InputStream類的常用方法:
public abstract int read() throws IOException; public int read(byte[] b) throws IOException; public int read(byte[] b, int off, int len) throws IOException; public long skip(long n) throws IOException; public int available() throws IOException; public void close() throws IOException;
二、數據讀取
讀取輸入流中的數據通常使用InputStream類中的read()方法。該方法有三種用法,分別如下:
- public abstract int read() throws IOException
從輸入流中讀取一個位元組的數據並返回,返回值是下一個位元組的整數表示,如果已經到達流的末尾,則返回-1。read()方法通常使用循環讀取輸入流中的數據,直到結束。
InputStream is = new FileInputStream("test.txt"); int b; while((b = is.read()) != -1) { System.out.println(b); } is.close();
從輸入流中讀取b.length個位元組的數據,存儲到byte數組b中,並返回實際讀取的位元組數。如果已經到達流的末尾,則返回-1。
InputStream is = new FileInputStream("test.txt"); byte[] b = new byte[1024]; int len; while((len = is.read(b)) != -1) { System.out.println(new String(b, 0, len)); } is.close();
從輸入流中讀取長度為len位元組的數據存儲在byte數組b中,從off位置開始存儲,並返回實際讀取的位元組數。如果已經到達流的末尾,則返回-1。
InputStream is = new FileInputStream("test.txt"); byte[] b = new byte[1024]; int len; while((len = is.read(b, 0, 100)) != -1) { System.out.println(new String(b, 0, len)); } is.close();
三、數據跳過
InputStream類中的skip()方法用於跳過指定位元組的數據,它的返回值是跳過的位元組數。
InputStream is = new FileInputStream("test.txt"); is.skip(10); byte[] b = new byte[1024]; int len = is.read(b); System.out.println(new String(b, 0, len)); is.close();
四、可用數據量
InputStream類中的available()方法用於獲取輸入流中可用的數據量。可用數據量指的是不阻塞情況下可以讀取的數據量,因此它的值可能不等於實際數據量。
InputStream is = new FileInputStream("test.txt"); System.out.println(is.available()); is.close();
五、輸入流關閉
當不再需要使用InputStream類的對象時,應該及時關閉輸入流對象,以釋放系統資源。
InputStream is = new FileInputStream("test.txt"); // 執行讀取操作 is.close();
六、小結
InputStream類是Java中輸入流的超類,它提供了一組常用的方法,如read()、skip()、available()等。通過InputStream類的方法,我們可以輕鬆地讀取輸入流中的數據,跳過指定位元組的數據,獲取可用數據量等。在使用完InputStream對象後,務必要及時關閉輸入流對象。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/191063.html