Java零基礎學java之IO流--05InputStream位元組輸入流
package com.io_.inputstream_;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStream_ {
public static void main(String[] args) {
/*
* InputStream :位元組輸入流
* InputStream 抽象類是所有類位元組輸入流的超類
* InputStream 常用的子類
* 1. FileInputStream : 檔案輸入流 ( 位元組 檔案 --> 程式 )
* 2. BufferedInputStream: 緩衝位元組輸入流
* 3. ObjectInputStream: 物件位元組輸入流
*/
}
//1. FileInputStream : 檔案輸入流 ( 位元組 檔案 --> 程式 )
// read() 單個位元組的讀取,效率比較低
//1. 先定義一個讀取檔案的方法
@Test
public void readFile01() {
//2. 讀取檔案的路徑
String filePath = "e:\\hello.txt";
//3. 透過建立物件的方法 new FileInputStream() 用於讀取檔案 filePath
int read = 0; // 判斷讀取完畢
FileInputStream fileInputStream = null; // 擴大 fileInputStream 的作用域 ,方便後面關閉檔案流
try {
fileInputStream = new FileInputStream(filePath); // try/catch/finally 捕獲異常
//4. 用 read() 方法讀取 ( 單個位元組的讀取)
// 從該輸入流讀取一個位元組 ( 用 外匯跟單gendan5.com while 迴圈來一直讀取 ) 的資料,如果沒有輸入可用,此方法將阻止
// 如果返回 -1 表示讀取完畢
while ((read = fileInputStream.read()) !=-1) {
System.out.print((char) read); //read() 返回的是 int 型別 , 要轉成 char
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//5. 關閉檔案流,釋放資源
try {
fileInputStream.close(); //try/catch 捕獲關閉檔案流的異常
} catch (IOException e) {
e.printStackTrace();
}
}
}
// read(byte[] b) 讀取檔案,提高效率
@Test
public void readFile02() {
String filePath = "e:\\hello.txt";
FileInputStream fileInputStream = null;
// 定義一個字元陣列
byte[] buf = new byte[8]; // 一次讀取 8 個字元
//byte[] buf = new byte[1024] 裡面一般寫的是 1024 的整數倍
// 定義讀取的長度
int readLen = 0;
try {
fileInputStream = new FileInputStream(filePath);
// 從該輸入流讀取最多 b.length 位元組的資料到位元組陣列。此方法將阻塞,直到某些輸入可用
// 如果返回 -1 ,表示讀取完畢
// 如果讀取正常,返回實際讀取的位元組數
while (( readLen = fileInputStream.read(buf)) !=-1){
System.out.print(new String(buf,0,readLen));// 將 byte[] 陣列型別轉成 String 型別輸出檔案資料 將讀取到的字元從 0 到 readLen 轉換
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2780392/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaIO流(一)-位元組輸入流與字元輸入流JavaAI字元
- IO流下:位元組流、流操作規律(java基礎)Java
- Java基礎(八)——IO流1_位元組流、字元流Java字元
- Java IO3:位元組流Java
- java的IO操作:位元組流與字元流操作Java字元
- java基礎學習_io流之FileInputStreamJava
- IO流的位元組輸入輸出流(InputStream,OutputStream)
- Java緩衝輸出位元組流BufferedOutputStreamJava
- Java之IO流基礎流物件Java物件
- Java提高篇(二):IO位元組流、字元流和處理流Java字元
- Java基礎之IO轉換流學習Java
- Java&Android 基礎知識梳理(6) 位元組輸入輸出流JavaAndroid
- [java IO流]之 萬能輸出流列印流printWriterJava
- [java IO流]之 IO概述Java
- [java IO流]之 基本資料型別輸入輸出流Java資料型別
- java入門(字元流、位元組流)Java字元
- 【Java基礎知識】IO流--標準輸入輸出流、列印流PrintStreamJava
- 傳智黑馬java基礎學習——day23(位元組流、字元流)Java字元
- [java IO流]之 鍵盤顯示器輸入輸出流(System)Java
- JAVA之精髓IO流Java
- 【重學Java】IO流Java
- 學習java io流Java
- Java IO流學習Java
- Java位元組流和字元流,是時候總結一下IO流了Java字元
- 學習 Java 之 位元組碼驗證Java
- Java之IO轉換流Java
- Java之IO流總結Java
- 阿里Java學習路線:階段 1:Java語言基礎-Java語言高階特性:第16章:位元組流與字元流:課時77:位元組流與字元流的區別阿里Java字元
- JAVA_基礎IO流物件流(三)Java物件
- java IO流學習分享Java
- Java基礎知識回顧之六 —– IO流Java
- Java基礎知識回顧之六 ----- IO流Java
- Java基礎 Java-IO流 深入淺出Java
- 面試必問的 Java 位元組流與字元流面試Java字元
- 詳解Java中的IO輸入輸出流!Java
- java -IO流Java
- Java IO流Java
- java - IO流Java