java处理csv格式数据

package com.baorant;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class GetExcelData {

	public static void main(String[] args) {
		File csv = new File("csv//1205.csv"); // CSV文件路径
		BufferedReader br = null;
		try {
			br = new BufferedReader(new FileReader(csv));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		String line = "";
		String everyLine = "";
		try {
			List<String> allString = new ArrayList<>();
			List<Integer> allInt = new ArrayList<>();
			int[] records = new int[24 * 60 / 5];//存取每个时间段的通过数量,可以获得最大分钟后得到长度;
			while ((line = br.readLine()) != null) // 读取到的内容给line变量
			{
//				System.out.println(line);
				everyLine = line;
				if(!everyLine.contains(" ")){
					continue;//有些文件中时间模式没有空格
				}
				String tem = everyLine.substring(everyLine.lastIndexOf(" ") + 1);// 获取每一行空格后面的部分;
				String tem2 = tem.substring(0, tem.indexOf(",", tem.indexOf(",") - 1));// 获得每一行逗号前面的部分;
				// s.substring(0, s.indexOf(".",s.indexOf(".")-1 ))

				tem2 = tem2.replace("\"","");//去掉字符串中可能多出的引号
				System.out.println(tem2);
				System.out.println(tem2.length());

				String hourStr;// 获得字符串小时部分
				String minuteStr;// 获得字符串分钟部分
				if(tem2.length() == 5){
					hourStr = tem2.substring(0, 2);
					minuteStr = tem2.substring(3, 5);
				}else if(tem2.length() == 4){
					hourStr = tem2.substring(0, 1);
					minuteStr = tem2.substring(2, 4);
				}else if(tem2.length() == 7){//时间为7位
					hourStr = tem2.substring(0, 1);
					minuteStr = tem2.substring(2, 4);
				}else{//时间为8位
					hourStr = tem2.substring(0, 2);
					minuteStr = tem2.substring(3, 5);
				}
				
				
				if (!tem2.contains("SSID"))
				{
					String subHourStr;
					String subMinuteStr;
					if(hourStr.length() == 2)
					{
						if(hourStr.charAt(0) == '0'){
							subHourStr = hourStr.substring(1, 2);
						}else{
							subHourStr = hourStr.substring(0, 2);
						}
					}else{
						subHourStr = hourStr.substring(0, 1);
					}
				    
				
				   if(minuteStr.length() == 2)
				   {
					   if(minuteStr.charAt(0) == '0')
					   {
						   subMinuteStr = minuteStr.substring(1, 2);
					   }else{
						   subMinuteStr = minuteStr.substring(0, 2);
					   }
				  }else
				  {
					subMinuteStr = minuteStr.substring(0, 1);
				  }
				  	Integer hours = Integer.valueOf(subHourStr);//小时数
//					System.out.println(hours);
					int minutes = Integer.valueOf(subMinuteStr);//分钟数
//					System.out.println(minutes);
					
					int minutestotal = 60 * hours + minutes;//当前时间总的分钟数
					System.out.println(minutestotal);
					allInt.add(minutes);
					int n = minutestotal/5;
					records[n] = records[n] + 1;
					System.out.println("n:" + n + "records[minutestotal/5]:" + records[n]);
				}

				allString.add(tem2);
				
			}
			System.out.println("csv表格中所有行数:" + allString.size());
			System.out.println(allInt.size());
			
			for(int i = 0; i < records.length; i++){
				System.out.print(records[i] + " ");
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

  该程序主要获得了excel表格中的每一行数据后获得其中的时间,然后按自己需要的格式进行处理得到想要的数据。

posted on 2018-07-18 23:05  baorant  阅读(775)  评论(0编辑  收藏  举报

导航