java中要读取一个.dat文件,文件存储为每行四个数据,数据之间空格隔开,如何读取这个文件数据?

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

我写了一个模型类,这个类四个属性来存储这一行数据
用的ArrayList<model>,应如何存储。
展开
 我来答
风承随心
2018-04-25 · TA获得超过1286个赞
知道小有建树答主
回答量:1607
采纳率:87%
帮助的人:363万
展开全部

显然的是不是,首先我们需要读取这个文件里的内容,这里每一行都是一条数据,我们可以用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;    
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式