按时间寻找测点的程序
来源:互联网 发布:刘嘉玲康康 知乎 编辑:程序博客网 时间:2024/06/05 10:05
该代码是用来寻找规定时间内给定测点的值其中需求的 测点在文件AimPointList.txt;所有的的测点都对应一个文件,每个文件里包括时间和对应的值。
要求:
给定需要的时间,将需要的测点放在一个文件里,将结果保存成一个文件。
思路:
1.读取目标测点文件,保存在集合里;
2,遍历集合,找对应测点的文件
3,根据对应时间,找出时间相等,或上一个时间点和下一个时间点的对应值的平均值
4,将结果输出到文本import java.io.BufferedReader;
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileFilter;import java.io.FileReader;import java.io.FileWriter;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.List;public class insertmethod {public static File file2 = new File("G:\\FindPointBytime\\FindPointBytile\\result.txt");public static File allCeName = new File("G:\\FindPointBytime\\FindPointBytile\\Float32_7#.txt"); //所有测点的文件public static File needCeName = new File("G:\\FindPointBytime\\FindPointBytile\\AimPointList.txt"); // 有需要测点的文件static int countFiles = 0;// 声明统计文件个数的变量 static int countFolders = 0;// 声明统计文件夹的变量 public static DateFormat dateFormat= new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");@SuppressWarnings("deprecation")public static Date dataneed =new Date("2015/12/1 23:59:10");public static Date data;public static long a;public static double dob; public static ArrayList<String>aimlist; public static ArrayList<Long>list; public static ArrayList<Double>str; public static String[] stringname={}; public static int j=0; public static double k=0; public static File[] searchFile(File folder, final String keyWord) {// 递归查找包含关键字的文件 File[] subFolders = folder.listFiles(new FileFilter() {// 运用内部匿名类获得文件 public boolean accept(File pathname) {// 实现FileFilter类的accept方法 if (pathname.isFile())// 如果是文件 countFiles++; else // 如果是目录 countFolders++; if (pathname.isDirectory() || (pathname.isFile() && pathname.getName().toLowerCase().contains(keyWord.toLowerCase())))// 目录或文件包含关键字 return true; return false; } }); List<File> result = new ArrayList<File>();// 声明一个集合 for (int i = 0; i < subFolders.length; i++) {// 循环显示文件夹或文件 if (subFolders[i].isFile()) {// 如果是文件则将文件添加到结果列表中 result.add(subFolders[i]); } else {// 如果是文件夹,则递归调用本方法,然后把所有的文件加到结果列表中 File[] foldResult = searchFile(subFolders[i], keyWord); for (int j = 0; j < foldResult.length; j++) {// 循环显示文件 result.add(foldResult[j]);// 文件保存到集合中 } } } File files[] = new File[result.size()];// 声明文件数组,长度为集合的长度 result.toArray(files);// 集合数组化 return files; } public static String timeFind(File src) throws Exception {long diff=0;list=new ArrayList<Long>();str=new ArrayList<Double>();BufferedReader bReader = new BufferedReader(new FileReader(src)); for (String line = bReader.readLine();line!= null;line = bReader.readLine()) {//读取每一行if (line.hashCode() !=0 ) {String[] sssString = line.split("\t");Date date1=dateFormat.parse(sssString[0]);String aString=sssString[1];if(aString.endsWith("System.__ComObject")){aString="0";}double ad=Double.parseDouble(aString);diff = date1.getTime() - dataneed.getTime();if((a<0&&diff>0)||(diff==0)){k=((dob+ad)/2);System.out.println("result is:**"+((dob+ad)/2)+"***");}a=diff;dob=ad;}}String kkString=Double.toString(k);return kkString;} public static void main(String[] args) throws Exception {File folder = new File("G:\\FindPointBytime\\FindPointBytile\\pointValueFile");// 默认目录aimlist=new ArrayList<String>();//寻找测点BufferedReader bReader = new BufferedReader(new FileReader(needCeName)); for (String line = bReader.readLine();line!= null;line = bReader.readLine()) { //读取每一行if (line.hashCode() !=0 ) {String[] sssString = line.split("\t");String aim=sssString[0];aimlist.add(aim);}}//提取出需要检测文件的绝对路径String strname = ""; Iterator<String> iterator = aimlist.iterator();BufferedWriter bwWriter=new BufferedWriter(new FileWriter(file2));while(iterator.hasNext()){String keyword = iterator.next();strname=keyword;bwWriter.write(strname+"\t");bwWriter.flush();if (!folder.exists()) {// 如果文件夹不存在 System.out.println("目录不存在:" + folder.getAbsolutePath()); return; } File[] result = searchFile(folder, keyword);// 调用方法获得文件数组 for (int i = 0; i < result.length; i++) {// 循环显示文件 File file = result[i]; String kk=timeFind(new File(file.getAbsolutePath())); bwWriter.write(kk+"\t");bwWriter.newLine(); System.out.println("---------------------------------"); }} bwWriter.flush();//end for bwWriter.close(); } }
1 0
- 按时间寻找测点的程序
- 按时的按时大使
- 错过的按时间段
- mysql 按时间查询的
- 按时的
- 按时的
- 分享一个java的UI程序,awt+swing,一个桌球计费系统,按时间计费
- 一个按时提醒休息的简单C语言程序
- 按时间模糊查询的问题
- oracle按时间回复数据的方法
- 按时间查询的SQL语句
- 按时间段问好的JS代码
- 按时间分组统计的SQL语句
- Android 处理ListView的长按时间
- LINUX的文件按时间排序
- 删除按时间备份的过期文件
- LINUX的文件按时间排序
- 按时间分类的自定义相册
- Java 高级类(上) —— 抽象类和接口
- Struts2 配置文件result的name属性和type属性
- shell awk
- UVA 编辑书稿
- Android Studio 上传本地代码至github
- 按时间寻找测点的程序
- C++对xml文档操作 CMarkUp
- Codeforces Round #340 (Div. 2) C
- android开发人员收藏网站
- 【Android】各个版本发布
- Atom插件go-plus的离线安装
- OC基础之字典,集合,字符串
- 推荐系统学习之概率算法及其增量算法
- CrazyFlie源码学习2-Stabilizer任务