15. Java IO: FileInputStream

想要查看此教程的目錄請點擊:Java IO教程目錄貼地址


使用FileInputStream可以以字節流的形式來讀取文件內容。FileInputStream是InputStream的子類,所以你可以使用FileInputStream像InputStream一樣。

FileInputStream例子

下面是一個簡單的例子:

InputStream input = new FileInputStream("c:\\data\\input-text.txt");

int data = input.read();
while(data != -1) {
  //do something with data...
  doSomethingWithData(data);

  data = input.read();
}
input.close();

注意:為了保證代碼思路清晰,這里并沒有考慮異常處理的情況。

FileInputStream的構造方法

FileInputStream提供了三種構造方法來創建一個實例。我會在這里先介紹前兩個。

第一個構造方法有一個String類型的參數。這個參數是指你想要讀取的文件路徑。下面是一個例子:

String path = "C:\\user\\data\\thefile.txt";

FileInputStream fileInputStream = new FileInputStream(path);

注意路徑字符串。他需要兩個“\”來生成一個“\”。因為“\”在Java中是轉義字符。所以你想寫一個“\”就得用兩個“\”來表示。

在linux或unix中,文件的路徑像下面這樣:

String path = "/home/jakobjenkov/data/thefile.txt";

注意使用常規的分隔符(/)來作為目錄分隔符。這是如何在linux或unix上寫文件路徑。實際上,以我的經驗,Java應該也理解你在windows上用"/"作為路徑分隔符,類似這樣的:c:/user/data/thefile.txt,但是別聽我的,你去你的系統上測試一下。

第二個構造方式是提供一個File類型的參數。這個參數你可以傳入你想要讀取的文件:

String path = "C:\\user\\data\\thefile.txt";
File   file = new File(path);

FileInputStream fileInputStream = new FileInputStream(file);

具體選用哪個構造函數,這取決于你有什么。如果你已經有一個String或File,那么只要用相應的就好了。將String轉為File或者將File轉為String,并沒有太大的區別。

read()

FileInputStream的read()方法會返回一個int值,它是讀取的字節。如果返回 -1,那么說明已經讀取完畢。-1是int值,而不是一個byte值,這里可是不一樣的。這個方法和InputStream中的read()使用是一樣的。

read(byte[])

FileInputStream也有兩個read()方法,使用的的方式也是和InputStream章節是一樣的。

close()

和其他的InputStream一樣,FileInputStream也需要在使用后關閉,調用close()方法即可。至于異常處理,可以參考相關的異常處理章節。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,933評論 18 139
  • 一、流的概念和作用。 流是一種有順序的,有起點和終點的字節集合,是對數據傳輸的總成或抽象。即數據在兩設備之間的傳輸...
    布魯斯不吐絲閱讀 10,101評論 2 95
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • 1 IONo18 1.1IO框架 【 IO:Input Output 在程序運行的過程中,可能需要對一些設備進...
    征程_Journey閱讀 978評論 0 1
  • 原來,不知不覺中,鄉愁、成長、愛情,都已深埋在了我對梧桐樹的無限眷戀里…… 01 這世間總有一些莫名其妙的情感,好...
    仙游園閱讀 1,166評論 0 5