.dat文件存储格式如下19691352012-7-1348431299852012-5-73864152011-5-6我写了一个模型类,这个类四个属性来存储这一行数据用的ArrayList<model>,应如何存储。... .dat文件存储格式如下
1969 13 5 2012-7-13
4843 12998 5 2012-5-7
386 41 5 2011-5-6

我写了一个模型类,这个类四个属性来存储这一行数据
用的ArrayList<model>,应如何存储。

显然的是不是,首先我们需要读取这个文件里的内容,这里每一行都是一条数据,我们可以用bufferedreader去读取行

其次,读完之后还要对每一条数据(行)处理一下,这个用string.split,根据空格分离字符串就行了

那么之后就是根据这得到的string[]封装成Model对象了

我们大概实现如下:

// 读取文件
public static List<String> readLines(String filePath) throws Exception {
        File file = new File(filePath);
        BufferedReader reader = new BufferedReader(new FileReader(file));
        String lineStr;
        List<String> strList = new ArrayList<String>();
        while (null != (lineStr = reader.readLine())) {
            strList.add(lineStr);
        }

        reader.close();
        return strList;
    }
// 封装数据
public static Model convertToModel(String s) throws Exception{
        String[] strings = s.split(" "); // 以空格分离
        try {
            Model model = new Model();
            model.first = strings[0];
            model.second = strings[1];
            model.third = strings[2];
            model.fourth = new SimpleDateFormat("yyyy-MM-dd").parse(strings[3]);
            return model;
        } catch (Exception e) {
            throw e;
        }
    }
// 测试函数,无异常即读取成功
public static void main(String[] args) {
        String filePath = "C:/Users/YSS36/Desktop/test.dat";
        try {
            List<String> strs= readLines(filePath);
            List<Model> models = new ArrayList<Model>();
            for (String string : strs) {
                models.add(convertToModel(string));
            }
            System.out.println(models);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
// Model
static class Model{        
    public String first;        
    public String second;        
    public String third;        
    public Date fourth;    
}