今天在读文件上遇到的一些问题:
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