今天在读文件上遇到的一些问题:
1.存在空行 2.样本以制表符(“\t”)分隔的处理; 3.读取日期的处理 解决办法记录如下:
//输入文件内容如下 (存在空行) 0 3 4 0 0 0 0 0 0 2 2 2 0 0 0 2 0 3 0 4 0 0 2 3 0 3 2 3 0 2 0 3 0 0 3 0 0 4 2 0 0 2 0 0 0 0 0 0 0 package com.huawei; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.LinkedList; import java.util.List; public class TestCode { public static void main(String[] args) { readData("E:/7NodeAdj.txt"); } public static void readData(String filename) { File f = new File(filename); BufferedReader br = null; try { br = new BufferedReader(new FileReader(f)); String sp[]; String line = ""; while((line=br.readLine())!=null ){ if(line.equals("")){//1.此处为处理空行代码 continue; } /** 2.若以制表符分隔,只需要将下面" "中的空格,换成用键盘敲一个“Tab键”变成:line.splite(" "),就ok了 */ sp = line.split(" "); for(int i=0;i<sp.length;i++){ System.out.print( sp[i]+" "); } System.out.println(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(br != null){ try { br.close(); br = null; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } //输出如下 0 3 4 0 0 0 0 0 0 2 2 2 0 0 0 2 0 3 0 4 0 0 2 3 0 3 2 3 0 2 0 3 0 0 3 0 0 4 2 0 0 2 0 0 0 0 0 0 0 /** 3.日期的操作 1)时分秒格式:"HH:mm:ss" 例如"22:20:20" 2)年月日格式:"yyyy-MM-dd" 例如:"2018-3-11" 3)年月日 时分秒 :"yyyy-MM-dd HH:mm:ss" 例如:"2018-3-11 22:20:20" (注: 年月日,时分秒之间有一个空格) */ DateFormat df1 = new SimpleDateFormat("HH:mm:ss"); DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); DateFormat df3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date dt1 = df1.parse("22:20:20");//字符串转换为Date类型 Date dt_1 = df1.parse("21:20:20"); Date dt2 = df2.parse("2018-3-11"); Date dt3 = df3.parse("2018-3-11 22:20:20"); /** 若要比较时间大小,可调用getTime()方法 以“时分秒”结构为例,另外两种一样。 */ if(dt1.getTime()>dt_1.getTime())// { System.out.println("dt1"); } else { System.out.println("dt_1"); } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } //打印出结果 dt1