使用arraylist在java中存储文件

时间:2014-02-18 11:25:22

标签: java arraylist java-io

我正在读取一个文件,并希望将其保存在数组列表中,以便能够在另一个类中调用此方法供以后使用。 这是我的代码:

    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不匹配。

我该如何使这项工作?

谢谢。

8 个答案:

答案 0 :(得分:3)

< ... >括号中的参数指定列表中存储的元素的类型。在这种情况下,您希望存储String个对象。所以它应该是

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

答案 1 :(得分:1)

你可以替换

ArrayList&lt; ReadFile&gt; fileList = new ArrayList&lt; ReadFile&gt; ();

通过

列表与LT;字符串&GT; fileList = new ArrayList&lt;&gt;();

JDK 7风格的

答案 2 :(得分:0)

尝试使用ArrayList<String> fileList而不是ArrayList<ReadFile>

答案 3 :(得分:0)

您声明了存储ReadFile的arraylist,但您想在列表中添加String导致此异常。从类型List<String>创建另一个列表并将文件内容存储在那里。

答案 4 :(得分:0)

CurrentLine的类型为StringfileList应为:

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

答案 5 :(得分:0)

您的arrayList是ReadFile类型。所以它希望你添加ReadFile类型的元素。你需要的是把它改成String。

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

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

答案 6 :(得分:0)

您的ArrayList只能保留ReadFile类型的对象,因为您使用ArrayList

声明了<ReadLine>
 Change your ReadFile class to something like 

Class ReadFile {

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

然后你可以做

fileList.add(new ReadFile(CurrentLine));

答案 7 :(得分:0)

您必须提供String而不是readfile。因为这里你的列表是期待readfile。

ArrayList list = new ArrayList();