java批处理采集的数据截取指定行数

球磨机数据预采集结束了,接下来的大量工作就是处理数据,(相比采集轻松多了)

采集的过程中设置的是51.2K的采样率,需要大约60秒的数据,为了方便,截取有效数据为300w,因为在球磨机在变频器的控制下,设置的变频器的启动时间是10秒,结束时间是6秒,因此,采集的实际时间要比60秒长,为了保障数据的可靠性,我这里采集了75秒,因此需要,因此需要对数据进行剪切。

数据的保存格式是这样的

实验有140次每次有4个文件,分别为,传感器数据,功率数据,485发送命令,以及接受命令存档。简单表示为如下:


/1--

     /commend.txt

     /response.txt

     /功率。txt

     /数据

/2--

     /commend.txt

     /response.txt

     /功率。txt

     /数据

。。。。

有用的只是数据。整体的思路是这样的:

1.输入根目录

2 对根目录加上1-140并用valueof转化为字符串,

3.遍历目录,找到有数据关键词的

4进行文本的读写


代码为下:

 
  
package com.hemin;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.LineNumberReader;

public class Datapro {

	public static void main(String[] args) throws IOException {
		String path ="E:\\data\\";
		String pro = "状态";
		for(int i=1 ;i<2 ;i++){
			String newpath =path+ String.valueOf(i)+"\\";
			System.out.println(newpath);
			File dir = new File(newpath);
			String[] children = dir.list();
			for (String string : children) {
				if(string.contains(pro)){
					String filepath = newpath+string;
					String wfile = "d:\\data\\"+String.valueOf(i)+"_"+string;
					File df = new File(wfile); 
					File f = new File(filepath);
					FileWriter wf = new FileWriter(wfile);
					getTotalLines(f , wf);
					wf.close();
				}	
			}
		}

	}

    public static void  getTotalLines(File file ,FileWriter wfile) throws IOException {
    	BufferedWriter wb = new BufferedWriter(wfile);
        FileReader in = new FileReader(file);
        LineNumberReader reader = new LineNumberReader(in);
        String s = reader.readLine();
        int lines = 0;
        while (s != null) {
            lines++;
            s = reader.readLine();
            if(lines>380000 && lines<=3380000 ){
            	//System.out.println(s);
            	wb.write(s);
            	wb.newLine();
            }
            wb.flush();
        }
        wb.close();
        reader.close();
        in.close();
    }
}

不过这个代码的效率比较低,考虑到其只用一次,所以就这样吧!

你可能感兴趣的:(java)