我正在读取一个文件,并希望将其保存在数组列表中,以便能够在另一个类中调用此方法供以后使用。 这是我的代码:
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 :(得分: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
的类型为String
,fileList
应为:
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();