繁体   English   中英

使用arraylist在Java中存储文件

[英]Storing file in java using arraylist

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

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

我该如何进行这项工作?

谢谢。

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

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

您可以更换

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

通过

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

以JDK 7样式

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

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

CurrentLine类型为StringfileList应该为:

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

您的arrayList类型为ReadFile。 因此,它希望您添加ReadFile类型的元素。 您需要将其更改为String。

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

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

由于您使用<ReadLine>声明了ArrayList ,因此ArrayList只能保存ReadFile类型的对象。

 Change your ReadFile class to something like 

Class ReadFile {

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

那你可以做

fileList.add(new ReadFile(CurrentLine));

您必须提供String而不是readfile。 因为在这里您的列表需要读取文件。

ArrayList list = new ArrayList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM