Java——資料讀取優化
阿新 • • 發佈:2019-02-15
//temp.txt中放的是abcde
import java.io.*;
class test{
public static void main(String[] args) throws IOException{
//int read(char[] cbuf) 將字元讀入陣列
FileReader fr = new FileReader("temp.txt");
char[] arr = new char[2];
int num;
/*
num = fr.read(arr);//把從檔案中讀的資料存到陣列中,返回的是讀取字元的個數
System.out.print(new String(arr));//ab
num = fr.read(arr);//把從檔案中讀的資料存到陣列中
System.out.print(new String(arr));//cd
num = fr.read(arr);//把從檔案中讀的資料存到陣列中
//System.out.print(new String(arr));//ed
//使用這種方法,從硬碟上讀是一個一個的讀,並不是一次性讀2個
//int num = fr.read();num的值為2,即返回的是陣列中元素的個數
//分別讀完a和b,然後開始讀c,讀完c之後,c就把a覆蓋掉了,再讀d,
//d把b覆蓋掉了,返回值還是2,因為讀了兩個資料,再讀,首先讀的是e,
//e把c覆蓋掉了,再讀就沒有了,返回值是1,因為只讀了一個數據,
//所以最後輸出的是e和d
*/
//改為下面的方法
/*num = fr.read(arr);//把從檔案中讀的資料存到陣列中
System.out.print(new String(arr,0,num));//ab
//把arr陣列,從下標0開始,轉變為String,num個
num = fr.read(arr);//把從檔案中讀的資料存到陣列中
System.out.print(new String(arr,0,num));//cd
num = fr.read(arr);//把從檔案中讀的資料存到陣列中
System.out.print(new String(arr,0,num));//e
*/
while((num=fr.read(arr))!=-1){
System.out.print(new String(arr,0,num));
}
fr.close();
//num = fr.read(arr);
//System.out.print(num);//-1
}
}