将文本文件读取到java对象数组

将文本文件读取到java对象数组,java,arrays,bufferedreader,Java,Arrays,Bufferedreader,我想要一个从文本文件中读取数据并将其存储到对象数组中的方法或示例。每个对象都有属性(月名、编号和布尔数组[3]) 文本文件逐行包含以下信息(月份名称、编号和布尔数组): May 211345 true false true June 8868767 false true false 课程包括: public class A{ private String monthName; private int number; private boolean[] working; pub

我想要一个从文本文件中读取数据并将其存储到对象数组中的方法或示例。每个对象都有属性(月名、编号和布尔数组[3])

文本文件逐行包含以下信息(月份名称、编号和布尔数组):

May
211345
true false true
June
8868767
false true false
课程包括:

public class A{
  private String monthName;
  private int number;
  private boolean[] working;

  public data() { ... }
}

publlic class B {
  private A[] a;
}

下面是一种逐行读取文件并解析字段的方法。但是,这假设数据文件是正确的(没有丢失的字段,字段格式正确,等等)。您必须添加代码来创建对象并将其添加到数组中

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;

public class ReadFile {

    public static void main(String[] args) {

        String fileFullPath = "C:\\Temp\\data.txt";

        /** verify that file exists */
        File checkFile = new File(fileFullPath);
        if (!checkFile.exists()) {
            System.err.println("error - file does not exist");
            System.exit(0);
        }        

        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(fileFullPath));
            String line;

            /** keep reading lines while we still have some */
            String month;
            int number;
            boolean[] barr;

            while ((line = br.readLine()) != null) {
                month = line;

                line = br.readLine();
                number = Integer.parseInt(line);

                line = br.readLine();
                String[] arr = line.split("\\s");
                barr = new boolean[3];
                for (int i=0; i < arr.length; i++) {
                    barr[i] = Boolean.parseBoolean(arr[i]);
                }

                /** store the fields in your object, then add to array **/
                System.out.println(month);
                System.out.println(number);
                System.out.println(Arrays.toString(barr));
                System.out.println();

            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)
                    br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    } //end main()

} //end 
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.array;
公共类读取文件{
公共静态void main(字符串[]args){
字符串fileFullPath=“C:\\Temp\\data.txt”;
/**验证文件是否存在*/
文件checkFile=新文件(fileFullPath);
如果(!checkFile.exists()){
System.err.println(“错误-文件不存在”);
系统出口(0);
}        
BufferedReader br=null;
试一试{
br=新的BufferedReader(新的文件读取器(fileFullPath));
弦线;
/**趁我们还有时间,继续读下去*/
弦月;
整数;
布尔[]巴尔;
而((line=br.readLine())!=null){
月=行;
line=br.readLine();
number=Integer.parseInt(行);
line=br.readLine();
字符串[]arr=line.split(\\s”);
barr=新布尔值[3];
对于(int i=0;i
您有什么问题吗?你试过什么了吗?这似乎是个家庭作业问题——而且你还没有花太多时间尝试任何事情