实际应用中很多设备导出的数据均为表格形式TXT文件,为了实际使用方便,可将内容转换成json文件,方便使用,java代码如下

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;


public class ExcelReadUtil {

    public static void main(String [] args){
        System.out.println();
        JSONArray jsonArray = changer("E:\\work\\Missile-Velocity.txt","time");
        try {
            FileWriter file = new FileWriter("F:\\test.json");
            file.write(jsonArray.toString());
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static JSONArray changer(String filePath, String titleKey){
        JSONArray result = new JSONArray();
        File file = new File(filePath);
        ArrayList<String> title = new ArrayList<>();
        if(file.exists()){
            try {
                Scanner scanner = new Scanner(file);
                while (scanner.hasNextLine()){
                    String lineData = scanner.nextLine().trim();
                    if(StringUtils.contains(lineData,titleKey)){
                        String [] datas = lineData.split("\\s{3,}");
                        for(String data : datas){
                            title.add(data);
                        }

                    }else if(title.size() > 0){
                        String [] datas = lineData.split("\\s{3,}");
                        JSONObject dataItem = new JSONObject();
                        dataItem.put("ax",0);
                        dataItem.put("ay",0);
                        dataItem.put("az",0);
                        dataItem.put("epochTime",datas[0]);
                        for(int i = 1; i < datas.length; i++){
                            dataItem.put(title.get(i),Double.valueOf(datas[i]) * 1000);
                        }
                        result.add(dataItem);
                    }
                }
            } catch (FileNotFoundException e) {
                throw new RuntimeException(e);
            }
        }
        return result;
    }
}
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐