1.File file = new File("abc.txt");
2. char[] ch=new char[(int)file.length()];
3. System.out.println(file.length());
4. FileReader fw=new FileReader(file);
5. fw.read(ch);
6. for(char ch1: ch){
7. System.out.println(ch1);
}
在第2行中,我們看到ch數組剛剛啓動其索引總數。而在整個代碼中,我們在其內存索引中沒有看到任何數據分配。 但我們也發現For-each循環正在從ch變量中提取數據。這怎麼可能???此char數組從哪裏獲取其數據?
注:文件的abc.txt包含字符數據
在第5行,因爲它作爲參數傳遞到'fw.read()' –
「而在存在來自'abc.txt'文件中讀取並投入char數組'ch.length'字符整個代碼在內存索引中沒有看到任何數據分配「===>'fw.read(ch);'<===它就是這樣。 –
請注意,這仍然是可怕的代碼:1)它假定每個字符只有一個字節。 2)它假定該文件是系統默認編碼。 3)它假定文件的大小不變。 4)它假設一個'read'的調用將讀取整個數據。 5)它不關閉讀者。 –