【问题标题】:Read and Write to a File, An Arraylist which contains objects with an ArrayList读取和写入文件,一个 Arraylist,其中包含带有 ArrayList 的对象
【发布时间】:2014-12-29 06:12:10
【问题描述】:

我有一个包含病房类型对象的 ArrayList W1,每个病房对象都有一个病房名称、最大容量、当前容量和一个包含患者类型对象的 ArrayList P1。每个 Patient 类型对象都有一个 Name、Age、Address、gender..etc

我想使用 bufferedwriter 将 ArrayList W1 写入文件并使用 bufferedreader 读取该文件。

我确实知道如何从 ArrayList 读取数据并写入文件。但在这种情况下,它让我感到困惑,因为我试图从一个 ArrayList 中读取,其中包含带有 ArrayList 的对象。

请告诉我该怎么做。

谢谢

除了这个,还有其他方法吗,

public static void addWardToFile(Ward ward)
{
     try
    {            
        out = new BufferedWriter(new FileWriter("wardDetails.txt",true));

        Iterator itr = ward.wardPatients.iterator();

        String patient="";

        while(itr.hasNext())
        {
         patient += itr.next().toString() + ":"; //patient object have a overridden toString method
        }
        out.write(ward.name +","+patients);
        out.newLine();
        out.close();
    }

【问题讨论】:

  • 这样的文件应该是什么格式?

标签: java bufferedreader bufferedwriter


【解决方案1】:

试试这个:

public class test1 {

public static void main(String args[]) throws IOException{

    StringBuffer sb = new StringBuffer();
    String filepath = "test.txt";
    List<String> list = new ArrayList<String>(); 
    list.add("1");
    list.add("2");
    list.add("3");
    list.add("4");
    list.add("5");
    list.add("6");

    Iterator<String> it = list.iterator();
    while(it.hasNext())
    {
        sb.append(it.next());
        sb.append(",");
    }

    BufferedWriter bw = new BufferedWriter(new FileWriter(filepath));
    bw.write(sb.toString());
    bw.flush();
    bw.close();
}

}

【讨论】:

  • 您的示例非常适合具有简单元素(String、int、..etc)的 ArrayList。但在我的情况下,我的 ArrayList W1 包含病房类型对象,而病房类型对象有一个单独的ArrayList 存储病房病人。所以我问如何存储该ArrayList?我应该将 W1 和病房患者 ArrayList 分开存储吗?
  • 你可以这样使用:HashMap> hp = new HashMap>();
  • 或:List> list = new ArrayList>();
【解决方案2】:

使用嵌套的 for 循环。下面是伪代码:

for (w in W1){
    write w...
    for (p in w.P1){
        write p...
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-13
    • 2017-04-25
    • 2017-08-13
    • 2012-04-04
    • 2018-08-09
    • 2017-10-24
    • 2017-10-04
    • 1970-01-01
    相关资源
    最近更新 更多