Java io操作,poi导出excel,集合自带排序,日志报告
来源:互联网 发布:小米笔记本装linux 编辑:程序博客网 时间:2024/06/01 03:57
java io操作,poi导出到excel表格,sl4j日志打印,集合自带排序Comparator
要求:
取出txt文件中其中第50000行到60000行的数据,进行数据的解析,然后对数据的某一项进行排序,从小到大输出到excel表格中.每一步的错误进行日志打印,不要直接e.printStackTrace()抛到java堆栈中.打印时间,观察执行的时间差.
思考:
对象:占用资源
这里是否需要对象?
要求:
取出txt文件中其中第50000行到60000行的数据,进行数据的解析,然后对数据的某一项进行排序,从小到大输出到excel表格中.每一步的错误进行日志打印,不要直接e.printStackTrace()抛到java堆栈中.打印时间,观察执行的时间差.
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Iterator;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ReadFile {private static final Logger logger = LoggerFactory.getLogger(ReadFile.class);private static final int STARTLINE = 50000;private static final int ENDLINE = 60000;public static void main(String[] args) {Long ts = System.currentTimeMillis();File file = new File("RCimp.txt");if (file.exists()) {System.err.println("exist");FileInputStream fis = null;InputStreamReader isr = null;BufferedReader br = null;try {fis = new FileInputStream(file);isr = new InputStreamReader(fis,"GBK");br = new BufferedReader(isr);String line;StringBuffer sb = new StringBuffer();int i = 0;List<Order> list = new ArrayList<Order>();while ((line = br.readLine()) != null) {i++;if (i >= STARTLINE && i <= ENDLINE) {//解析Order order = new Order();String[] s1 = line.split("\\(");order.setCode(s1[0]);String[] s = line.split("\\'");order.setName(s[1]);order.setNum(s[3]);order.setPoint(s[5]);order.setA(s[7]);order.setB(s[9]);order.setC(s[11]);list.add(order);}}Collections.sort(list, new NumComparator()); // 根据num排序exportExcel(list);} catch (FileNotFoundException e) {logger.info("{}", e.toString());e.printStackTrace();} catch (UnsupportedEncodingException e) {logger.info("{}", e.toString());e.printStackTrace();} catch (IOException e) {logger.info("{}", e.toString());e.printStackTrace();} finally {try {br.close();isr.close();fis.close();} catch (IOException e) {logger.info("{}", e.toString());e.printStackTrace();}}}Long te = System.currentTimeMillis();System.out.println(te - ts);}// 自定义比较器:按num排序static class NumComparator implements Comparator {public int compare(Object object1, Object object2) {// 实现接口中的方法Order o1 = (Order) object1; // 强制转换Order o2 = (Order) object2;return new Double(o1.getNum()).compareTo(new Double(o2.getNum()));}}public static void exportExcel(List<Order> list) {HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("银行账目表");// Create a row and put some cells in it. Rows are 0 based.int i = 0;//行数for (Iterator iterator = list.iterator(); iterator.hasNext();) {Order o = (Order) iterator.next();HSSFRow row = sheet.createRow(i);// Or do it on one line.row.createCell((short) 0).setCellValue(o.getCode());row.createCell((short) 1).setCellValue(o.getName());row.createCell((short) 2).setCellValue(o.getNum());row.createCell((short) 3).setCellValue(o.getPoint());row.createCell((short) 4).setCellValue(o.getA());row.createCell((short) 5).setCellValue(o.getB());row.createCell((short) 6).setCellValue(o.getC());i++;}// Write the output to a filetry {FileOutputStream fileOut = new FileOutputStream("new.xls");wb.write(fileOut);fileOut.close();} catch (FileNotFoundException e) {logger.info("{}", e.toString());e.printStackTrace();} catch (IOException e) {logger.info("{}", e.toString());e.printStackTrace();}}}
思考:
对象:占用资源
这里是否需要对象?
0 0
- Java io操作,poi导出excel,集合自带排序,日志报告
- java操作poi导出Excel
- Java导出Excel文档使用poi操作
- Java操作poi导出Excel报表
- poi操作导出excel、
- poi导出excel操作
- poi excel带公式导出
- poi excel带公式导出
- java poi 导出excel
- Java POI导出excel
- Java POI 导出Excel
- java poi 导出excel
- java POI导出Excel
- JAVA POI 导出excel
- JAVA POI 导出excel
- java poi导出excel
- Java POI 导出EXCEL
- Java POI导出Excel
- 余额重估(Revaluation Balances)相关设置和操作
- HTTPS为什么安全 &分析 HTTPS 连接建立全过程
- 软件开发模式对比(瀑布、迭代、螺旋、敏捷)
- C++内存管理
- RPM一些常用的命令
- Java io操作,poi导出excel,集合自带排序,日志报告
- redis存储和查询的java实现
- <s:action 的死循环
- 第一篇博客写给自己
- 简单的tomcat+oracle+jsp用例
- 鲲*棠
- SVN 上传.a 文件操作
- list集合想到的
- 详细介绍Linux指令od