import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public /** * @author congtaowang * @since 2021/3/26 * * 生成测试数据,执行指令 * java LocParse.java * * loc.txt * adas0.txt * adas1.txt * adas2.txt * adas3.txt * adas4.txt * adas5.txt * adas6.txt * adas7.txt * adas8.txt * adas9.txt * */ class LocParse { public static void main( String[] args ) { new Thread( new Runnable() { @Override public void run() { try { LocParse.run(); } catch ( Exception e ) { e.printStackTrace(); } } } ).run(); } private static void run() throws Exception { InputStreamReader isr = new InputStreamReader( new FileInputStream( "loc.csv" ) ); BufferedReader br = new BufferedReader( isr ); File loc = new File( "loc.txt" ); if ( loc.exists() ) { loc.delete(); } loc.createNewFile(); OutputStreamWriter locOsw = new OutputStreamWriter( new FileOutputStream( loc ) ); BufferedWriter locWr = new BufferedWriter( locOsw ); final int adasRecAmount = 10; final int intervalLineAmount = 50; BufferedWriter writers[] = new BufferedWriter[adasRecAmount]; for ( int i = 0; i < adasRecAmount; i++ ) { File file = new File( "adas" + i + ".txt" ); if ( file.exists() ) { file.delete(); } file.createNewFile(); OutputStreamWriter osw = new OutputStreamWriter( new FileOutputStream( file ) ); writers[i] = new BufferedWriter( osw ); } String line = null; final int pLon = 1; final int pLat = 2; final int pAlt = 3; final int pHeading = 4; final int pSpeed = 6; final int pDistance = 7; final int pReceiverDataTime = 8; final int pAdasSatelliteTime = 9; final int pSystemTime = 10; final int pSatelliteTime = 11; int counter = 0; while ( ( line = br.readLine() ) != null ) { line = line.replace( " ", "" ); String seg[] = line.split( "," ); double lon = Double.parseDouble( seg[pLon] ); double lat = Double.parseDouble( seg[pLat] ); double alt = Double.parseDouble( seg[pAlt] ); double heading = Double.parseDouble( seg[pHeading] ); double speed = Double.parseDouble( seg[pSpeed] ); double distance = Double.parseDouble( seg[pDistance] ); long receiverDataTime = Long.parseLong( seg[pReceiverDataTime] ); long adasSatelliteTime = Long.parseLong( seg[pAdasSatelliteTime] ); long systemTime = Long.parseLong( seg[pSystemTime] ); long satelliteTime = Long.parseLong( seg[pSatelliteTime] ); // 定位 StringBuilder locJson = new StringBuilder( "{" ); locJson.append( "\"lon\":" + lon ); locJson.append( ",\"lat\":" + lat ); locJson.append( ",\"alt\":" + alt ); locJson.append( ",\"heading\":" + heading ); locJson.append( ",\"speed\":" + speed ); locJson.append( ",\"systemTime\":" + systemTime ); locJson.append( ",\"receiverDataTime\":" + receiverDataTime ); locJson.append( ",\"adasSatelliteTime\":" + adasSatelliteTime ); locJson.append( ",\"satelliteTime\":" + satelliteTime ); locJson.append( "}\n" ); locWr.write( locJson.toString() ); int writersCount = counter++ / intervalLineAmount; if ( writersCount > adasRecAmount ) { writersCount = adasRecAmount; } for ( int i = 0; i < writersCount; i++ ) { int type = 3; switch ( i ) { case 1: case 2: case 3: case 4: case 6: type = i; break; case 0: case 5: case 7: case 8: case 9: type = 3; break; } StringBuilder adasJson = new StringBuilder( "{" ); adasJson.append( "\"type\":" + type ); adasJson.append( ",\"uuid\":" + "\"2_" + i + "\"" ); adasJson.append( ",\"lon\":" + lon ); adasJson.append( ",\"lat\":" + lat ); adasJson.append( ",\"alt\":" + alt ); adasJson.append( ",\"heading\":" + heading ); adasJson.append( ",\"distance\":" + distance ); adasJson.append( ",\"speed\":" + speed ); adasJson.append( ",\"systemTime\":" + systemTime ); adasJson.append( ",\"satelliteTime\":" + satelliteTime ); adasJson.append( ",\"dataAccuracy\":" + 1 ); adasJson.append( "}\n" ); writers[i].write( adasJson.toString() ); } // adas } locWr.flush(); locWr.close(); for ( BufferedWriter writer : writers ) { writer.flush(); writer.close(); } } }