[英]How to read a text file in java and assign lines to variables
這是我寫的代碼:
try {
String[] Flight_Inputs = null;
Scanner in = new Scanner(f); // f = input file
int counter =0;
while(in.hasNextLine()) {
Flight_Inputs[counter++] = in.next();
//Flight_Inputs = in.nextLine().split("\n"); // Also tried this
}
in.close();
for(int i = 0,j=0; i < Flight_Inputs.length; i++){
Boeing.setDestination_from(Flight_Inputs[j++]);
Boeing.setDestination_to(Flight_Inputs[j++]);
Boeing.setName(Flight_Inputs[j++]);
}
我在線程“ AWT-EventQueue-0” java.lang.NullPointerException中遇到異常錯誤我也嘗試了其他變體,但遇到一個錯誤,我試圖訪問Flight_Inputs的索引1,但編譯器說該錯誤不存在。
我想做的就是簡單地從文本文件中獲取一些行,並將它們分配給Boieng對象的變量...任何幫助將不勝感激!
您應該將Flight_Inputs更改為動態大小列表,例如:
更改:
//as Pshemo pointed out, this is null,
//and is causing your NullPointerException
String[] Flight_Inputs = null;
...
Flight_Inputs[counter++] = in.nextLine();
...
for(int i = 0,j=0; i < Flight_Inputs.length; i++){
至:
List<String> Flight_Inputs = new ArrayList<String>();
...
Flight_Inputs.add(in.next());
...
for(String filghtInput : Flight_Inputs){
您從未初始化Flight_Inputs
數組,這就是為什么要獲取java.lang.NullPointerException
。 無論如何,如果您不知道文件將包含多少行,則應使用List
而不是ArrayList<String>
。
嘗試這種方式:
List<String> lines= new ArrayList<String>();
Scanner in = new Scanner(f); // f = input file
while(in.hasNextLine()) {
lines.add(in.nextLine());
}
in.close();
現在要遍歷此列表,您可以使用
for(String line: lines){
System.out.println(line);
}
是的, String[] Flight_Inputs = null;
表示... Flight_Inputs
為null。
您將需要使用非null值實例化它,例如:
String[] Flight_Inputs = new String[size];
除了您可能事先不知道大小外。
如果您使用Java 7,則是一個更簡單的選擇:
List<String> lines = Files.readAllLines(file, charset);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.