2014-03-02 70 views
0

大家好嗎?我正在嘗試讀取文件並將該文件中的每個字符串存儲到數組中的元素中。問題是,我不能移動到下一行數據。我假設,當我需要使用一個ArrayList,但我很難找出如何遍歷每行上的每個文本,並將其存儲到一個元素,然後移動到下一行。我想讓每個數據存儲在它自己的元素中。另外我將如何調用存儲在該元素內的數據?這裏是我的代碼:將文件讀取到數組然後將數組存儲到ArrayList中Java

Scanner readPayrollData = new Scanner(new FileReader ("employeeData.dat")); 

String[] employee = new String[3]; 

ArrayList<String> data = new ArrayList<String>(); 

while(readPayrollData.hasNextLine()) 
{ 
    for(int i = 0; i < employee.length; i++) 
    { 
     readPayrollData.hasNext(); 
     employee[i] = readPayrollData.next();  
    } 

    readPayrollData.hasNextLine();   
    data.add(employee); 
} 

System.out.println(data); 
readPayrollData.close(); 
+0

檢查如何使用掃描儀通過文件的內容導航的鏈接。 http://www.javaprogrammingforums.com/file-input-output-tutorials/339-reading-file-line-line-using-scanner-class.html – ray

回答

1
ArrayList<String> list = new ArrayList<String>(); 

Scanner inFile = null; 
try { 
inFile = new Scanner(new File("textfile.txt")); 
} catch (FileNotFoundException e) { 

e.printStackTrace(); 
} 

while(inFile.hasNextLine()){ 
    list.add(inFile.nextLine()); 
} 
+0

對不起,但我是編程新手。你能解釋一下這段代碼的工作原理嗎? –

+0

數組是數據的列表。陣列的大小是固定的;我們必須在初始化時聲明它的大小。 ArrayList是動態的。我們被允許添加儘可能多的項目,我們想要一個ArrayList。 在上面的代碼中,我聲明瞭一個String類型的ArrayList。 我創建了一個掃描程序,該掃描程序使用給定的文件名接收文件。 Scanner類有一個名爲.hasNextLine()的方法,用於檢查當前的Scanner對象是否仍然有輸入。循環內的代碼將掃描器的下一行添加到ArrayList。 – Solace

0
List<String> employee=new ArrayList<>(); 
Scanner fin=null; 
try{ 
fin=new Scanner(new File("employeeData.dat")); 
}catch(Exception e){ 
System.out.println("unable to open file"); 
e.printStackTrace(); 
} 

while(fin.hasNextLine()){ 
employee.add(fin.nextLine()); 
} 

fin.close(); 
+0

我很抱歉,但我是編程新手。你能解釋一下這段代碼的工作原理嗎? –

+0

數組列表將用於存儲字符串變量。即文件的每一行。 – Anish6595

+0

數組列表將用於存儲字符串變量。 fin將要讀取文件。即時通訊在try和catch塊中讀取文件,因爲如果發生錯誤並且文件由於某種原因無法讀取,那麼程序流將轉移到catch和「e.printStackTrace();」會告訴你爲什麼文件沒有被讀取。 while循環基本上檢查是否有任何信息出現在文件的下一行,這種情況不斷髮生,直到它變成錯誤並退出循環。 add()方法將字符串添加到數組列表中 – Anish6595

相關問題