簡體   English   中英

如何在Java中讀取文本文件並為變量分配行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM