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

.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;    
}

温馨提示:内容为网友见解,仅供参考
无其他回答

java中要读取一个.dat文件,文件存储为每行四个数据,数据之间空格隔开...
显然的是不是,首先我们需要读取这个文件里的内容,这里每一行都是一条数据,我们可以用bufferedreader去读取行 其次,读完之后还要对每一条数据(行)处理一下,这个用string.split,根据空格分离字符串就行了 那么之后就是根据这得到的string[]封装成Model对象了 我们大概实现如下:\/\/ 读取文件public sta...

JAVA中怎么读取DAT文件中的内容
\/\/调用时, 只要 readFile("C:\\\\test.dat");public String readFile(String path) throws IOException...{ File file=new File(path); if(!file.exists()||file.isDirectory()) throw new FileNotFoundException(); BufferedReader br=new BufferedReader(new FileReader(file)); ...

java 读取dat文件
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。BufferedReader bre = null;try { String file = "D:\/test\/test.dat";bre = new BufferedReader(new FileReader(file));\/\/此时获取到的bre就是整个文件的缓存流 while ((str = bre.readLine())!= null) \/\/ ...

. dat文件怎么打开,如何打开. dat文件?
1.右键单击.dat文件,选择打开方式,选择文本编辑器。2.在文本编辑器中查看数据。请注意,如果.dat文件包含二进制数据,那么您将无法使用文本编辑器打开它。2.使用特定应用程序打开.dat文件 许多.dat文件只能由特定的应用程序打开。例如,MicrosoftOffice中的某些文件类型就是.dat格式。如果您尝试使用文本编...

请问如何写一个Java程序读取DAT文件里的内容
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;public class Test4 { public static void main(String[] args) { String[][] arr=new String[5][6];String fileName="c:\/a.dat";File file = new File(fileName);BufferedReader ...

请问怎么用Java读取.dat文件的数据?
格式知道有什么用啊,你要知道字符集啊,乱码肯定是字符集不对了,要么是16进制的,你先进行16进制的转换或字符集的转换,读文本内容跟读txt文件没区别的

写一个java方法读取dat文件中的数据
String[] data = dat.sqlit("[],");double[] d = new double[4];for(int i = 0,int j=0;i<data.length,j<4;i++){ try{ d[j]=Double.valueOf(data[i])j++;}catch(Exception e){ continue;} }

matlab读取dat文件中的数据
matlab读取dat文件中的数据步骤如下:1、打开matlab软件,选择File->ImportData->FromFile。2、选择要读取的dat文件。3、在弹出的对话框中,根据文件内容和格式选择相应的选项。4、设置数据的导入选项,例如设置列分隔符、计量单位、是否包含表头等。5、点击“Import”按钮,即可导入数据。6、可以在matlab的...

java如何读取D盘下面的所有*.dat文件!
1、获取d:\\ 目录下所有的文件,需要考虑是否需要递归。这里主要用到File等类 2、对每个文件名解析,判断是否是dat文件 3、对每个dat文件读取,主要用到InputStreamReader等类 4、生成目录,主要用到File类里的API

java解析dat文件内的内容,下面是dat里的信息
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;public class DatDemo {public static void main(String[] args) throws Exception {File file = new File("c:\\\\test.dat");BufferedReader br = new BufferedReader(new FileReader(file));\/\/输入流String str;while...

相似回答