Question

I am reading a file and want to save it in an array list to be able to call this method in another class for later use. Here's my code:

    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();
            } 

        }
    }

I get an error at fileList.add(CurrentLine);. I know this is because CurrentLine does not match with ReadFile.

How can I make this work?

Thank you.

Était-ce utile?

La solution

The parameters in the < ... > brackets specify the type of the elements stored in the list. In this case, you want to store String objects. So it should be

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

Autres conseils

You could replace

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

by

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

in JDK 7 style

You declared an arraylist that stores ReadFile but you want to add a String to the list which causes this exception. Create another List from type List<String> and store the file content there.

Try ArrayList<String> fileList instead of ArrayList<ReadFile>

Type of CurrentLine is String, fileList should be:

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

Your arrayList is of type ReadFile. So it expects you to add elements of type ReadFile. What you need is change it to String.

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

to

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

Your ArrayList can hold objects of type ReadFile only, since you declared your ArrayList using <ReadLine>

 Change your ReadFile class to something like 

Class ReadFile {

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

Then you can do

fileList.add(new ReadFile(CurrentLine));

You have to provide String instead of readfile. because here your list is expecting readfile.

ArrayList list = new ArrayList();

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top