2014-02-18 55 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风格