2014-02-18 93 views
0

我正在讀取一個文件並希望將其保存在數組列表中,以便能夠在另一個類中調用此方法以供以後使用。 這裏是我的代碼:使用ArrayList在java中存儲文件

package com.qmul.rfid.reader; 
import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 

public class ReadFile { 

     public static void main(String[] args) { 

      ArrayList<ReadFile> fileList = new ArrayList<ReadFile>(); 

      try (BufferedReader br = new BufferedReader(new FileReader("C:\\tagNo.txt"))) 
      { 

       String CurrentLine; 

       while ((CurrentLine = br.readLine()) != null) { 
        System.out.println(CurrentLine); 


        fileList.add(CurrentLine); 

       } 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } 
    } 

我在fileList.add(CurrentLine)得到一個錯誤;.我知道這是因爲CurrentLine與ReadFile不匹配。

我該如何做這項工作?

謝謝。

+0

filelist是一個readfiles數組,而currentline是一個字符串。所以我想你必須從一個字符串創建一個新的readfile對象。這obvioulsy取決於如何將讀取文件寫入文件... – Leo

+0

fileList應該是一個字符串的列表。 –

回答

3

<...>括號的參數指定存儲在所述列表中的元素的類型。在這種情況下,您需要存儲String對象。所以它應該是

ArrayList<String> fileList = new ArrayList<String>(); 
+0

謝謝..它的工作! – Sne

+0

如果您正在使用Java 7,那麼您可以省略一些打字並使用菱形推理,'ArrayList fileList = new ArrayList <>();' – Agostino

0

嘗試ArrayList<String>的fileList代替ArrayList<ReadFile>

0

你宣稱存儲ReadFile一個ArrayList,但要一個String增加導致該異常的列表。創建List<String>類型的另一個列表並將文件內容存儲在那裏。

0

CurrentLine類型爲StringfileList應該是:

ArrayList<String> fileList = new ArrayList<String>(); 
0

你的ArrayList是類型的ReadFile的。所以它期望你添加ReadFile類型的元素。你需要的是將其改爲String。

ArrayList<ReadFile> fileList = new ArrayList<ReadFile>(); 

ArrayList<String> fileList = new ArrayList<String>(); 
0

ArrayList只能容納ReadFile類型的對象,因爲你使用<ReadLine>

Change your ReadFile class to something like 

Class ReadFile { 

    String line; 
    ReadFile(String currentLine){ 
    this.line = currentLine; 
    } 
} 

隨後宣佈你ArrayList你可以做

fileList.add(new ReadFile(CurrentLine));

0

您必須提供字符串而不是readfile。因爲這裏你的列表正在等待readfile。

ArrayList list = new ArrayList();

1

您可以取代

的ArrayList < ReadFile的>的fileList =新的ArrayList < ReadFile的>();

通過

列表<字符串>的fileList =新的ArrayList < >();

JDK 7風格