面試題:如何讀取長度不確定的文件的數據以填充指定長度的數組

問題描述

給定一個文件長度爲 nn,現在要求讀取長度爲 mm 的內容,當 m<=nm<=n 時,只讀取 mm 個字節,當 m>nm > n時,循環讀取文件進行填充, 直到讀取 nn 填充滿爲止。

解決辦法

可以利用 FileInputStreamread(byte[], start, length) 方法來解決,因爲這個函數返回讀取到的數據長度。實現代碼如下所示。

public static byte[] readBytes(String file, int maxsize) throws Exception {
	byte[] bts = new byte[maxsize];
	FileInputStream fs = new FileInputStream(file);
	int left = maxsize, p = 0;
	while (left > 0) {
		p += fs.read(bts, maxsize - left, left);
		left -= p;
	}
	fs.close();
	return bts;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章