123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package com.miniframe.tools.file;
- import com.google.gson.Gson;
- import com.miniframe.core.ext.UtilTools;
- import com.miniframe.model.mdo.MdoProAdflow;
- import com.miniframe.model.mdo.MdoProAdflowSQLBuilder;
- import com.miniframe.model.mdo.MdoProComval;
- import com.miniframe.model.mdo.MdoProComvalSQLBuilder;
- import com.miniframe.model.mdo.dao.MdoProAdflowMapper;
- import com.miniframe.model.mdo.dao.MdoProComvalMapper;
- import com.miniframe.websocket.WebsocketEndPoint;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- public class AdflowFileRead {
- public static void readFile(File file, String pid) {
- MdoProAdflowMapper adfdao =UtilTools.getBean(MdoProAdflowMapper.class);
- MdoProAdflowSQLBuilder asb = new MdoProAdflowSQLBuilder();
- MdoProAdflowSQLBuilder.Criteria asc = asb.createCriteria();
- asc.andPidEqualTo(pid);
- MdoProAdflow adflow = adfdao.selectOneByExample(asb);
- MdoProComvalMapper comvalDao = UtilTools.getBean(MdoProComvalMapper.class);
- MdoProComvalSQLBuilder comvalsb = new MdoProComvalSQLBuilder();
- MdoProComvalSQLBuilder.Criteria comvalsc = comvalsb.createCriteria();
- comvalsc.andPidEqualTo(pid);
- List<Integer> types = new ArrayList<>();
- types.add(2);
- types.add(3);
- comvalsc.andTypeIn(types);
- comvalDao.deleteByExample(comvalsb);
- int i= 0;
- String line;
- // 使用try-with-resources语句确保资源被正确关闭
- try (BufferedReader br = new BufferedReader(new FileReader(file))) {
- int size=0;
- int tel =0;//多个zone
- // 逐行读取,直到文件末尾
- while ((line = br.readLine()) != null) {
- line=line.trim().replaceAll("\\s+"," ").trim();//替换多个空格为一个空格
- if(line.startsWith("Title")){
- continue;
- }
- if(line.startsWith("Variables")){
- //Variables = "CoordinateX" "CoordinateY" "CoordinateZ" "XoC" "YoC" "ZoC" "VelocityX" "VelocityY" "VelocityZ" "CoefPressure" "Mach"
- // line=line.replace("\"","");
- // line=line.replace("Variables =","").trim();
- continue;
- }
- if(line.startsWith("Zone")){
- continue;
- }
- if(line.startsWith("Nodes")){
- line=line.trim().replace("Nodes = ","");
- size =Integer.valueOf(line.split(" ")[0]);
- tel=tel+100;
- i=0;
- continue;
- }
- if(line.startsWith("DATAPACKING")){
- continue;
- }
- if(i>=size){
- continue;
- }
- if(i<size){
- String[] vals = line.split(" ");
- MdoProComval comval =new MdoProComval();
- comval.setId(UtilTools.getUUid());
- comval.setPid(pid);
- comval.setStep(tel+i);
- comval.setVars("v1 v2");
- if(1==adflow.getLiftindex()){//x
- comval.setVals(vals[4]+" "+vals[5]);
- }
- if(2==adflow.getLiftindex()){//y
- comval.setVals(vals[3]+" "+vals[5]);
- }
- if(3==adflow.getLiftindex()){//z
- comval.setVals(vals[3]+" "+vals[4]);
- }
- comval.setType(2);//"1-列表数据 2-几何数据 3-压力数据"
- comvalDao.insert(comval);
- // WebsocketEndPoint webs = (WebsocketEndPoint) UtilTools.getBean("websocketEndPoint");
- // Gson gson = new Gson();
- // webs.sendMessageToUser(String.valueOf(pid),gson.toJson(comval));
- MdoProComval comval2 =new MdoProComval();
- comval2.setId(UtilTools.getUUid());
- comval2.setPid(pid);
- comval2.setStep(tel+i);
- comval2.setVars("x cp");
- comval2.setVals(vals[6]+" "+vals[9]);
- comval2.setType(3);//"1-列表数据 2-几何数据 3-压力数据"
- comvalDao.insert(comval2);
- // webs.sendMessageToUser(String.valueOf(pid),gson.toJson(comval2));
- }
- i++;
- }
- } catch (IOException e) {
- // 异常处理
- e.printStackTrace();
- }
- }
- }
|