所以通常情況下,我知道人們會使用標準的for循環迭代雖然陣列,像這樣的:文件IO,使用for-each循環從文件陣列讀取(:)在Java中
public static void readCodesFromFile(String filename, String[] codes) throws FileNotFoundException {
try (Scanner fin = new Scanner(new File(filename));) {
for (int i = 0; i <= codes.length - 1; i++) {
codes[i] = fin.nextLine();
}
}
}
但,我非常想發現如何用每個循環代替這個來做到這一點。 在這一點上,我只需要知道它是否可以完成,但也會喜歡使用此循環執行此任務的效率和清潔度。我嘗試過類似的東西,並且多次移動東西,但似乎無法正確讀取任何內容。
下面是每個(:)我一直在努力:
public static void readCodesFromFile(String filename, String [] codes) throws FileNotFoundException {
try (Scanner fin = new Scanner(new File(filename));) {
for (String code : codes) {
codes = fin.nextLine();
}
}
}
你不能用'for-each'修改底層數組(它隱藏了迭代器)。你可以使用'Stream'(在Java 8+中,如果你想的話)。 'Stream.generate(() - > fin.nextLine())。limit(codes.length).collect(Collectors.toList())。toArray(codes);' –
*「** ** ** ** **文件「*? – Andreas
這是不可能的使用for-each循環,看看這裏 https://stackoverflow.com/questions/17969515/java-for-loop-by-value-or-by-reference –