java 读文件(1.存在空行;2.制表符分隔;3.日期)

今天在读文件上遇到的一些问题:

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值