Java數組的大小不能增長,因此您使用了一個列表(來自java.util)。這些列表動態增長,因此您可以隨意使用add()
。由於列表可能包含所有內容,因此可以使用List<TypeOfWhatYouWantToStore>
指定要包含的內容。因此,List類被稱爲泛型類。
將它轉換爲數組(因爲這是你想要的)有點奇怪。您分配列表大小的陣列,然後在列表上使用toArray
。這將返回列表,並轉換爲數組。它必須將數組作爲參數,因爲編譯器需要使用泛型進行編譯。
package com.java24hours;
import java.io.*;
import java.util.*;
public class ShorteningVelocity {
public static void main(String[] arguments) throws IOException {
FileReader SVfile = new FileReader(new File("C:\\Documents\\10-27-15110mMKPSS3.dat"));
BufferedReader br = new BufferedReader(SVfile);
String temp = br.readLine();
List<String> tmpList = new ArrayList<>();
while (temp != null) {
tmpList.add(temp);
temp = br.readLine(); //reads file line by line
}
String[] myArray = new String[tmpList.size()];
myArray = tmpList.toArray(myArray);
}
}
編輯:使用Files.readAllLines()
(見你的問題的意見)是更容易和更快的可能,但使用這個循環中,你可以看到更多的是怎麼回事的。
編輯2:更常見的是使用這種循環:
String temp;
List<String> tmpList = new ArrayList<>();
while ((temp = br.readLine()) != null) {
tmpList.add(temp);
}
環路現在做了以下內容:
- 讀
br.readLine()
到temp
- 如果
temp
爲空,離開循環
- 如果
temp
不爲空,則添加i噸至列表
您還可以通過執行打印數組:
for (String str : myArray) {
System.out.println(str);
}
至於你的問題,我也搞不清楚初學者...你有什麼問題嗎?你有什麼問題? – Tom
使用['Files.readAllLines()'](http://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#readAllLines-java.nio.file.Path- java.nio.charset.Charset-)。 – fge