簡體   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