JAVA基础之读取文件数据并进行处理

本人大四狗,主要是为了记录下参加企业培训学到的东西并且做个记录,表示自己学过这些

数据读取文件中数据需要的IO流

IO流主要分为输入和输出
输入输出又分为字节或者字符流
本次数据处理需要用到
1.FileInputStream:读取文件的流,字节输入流
2.InputStreamReader:是字节流与字符流之间的桥梁,能将字节流输出为字符流,并且能为字节流指定字符集,可输出一个个的字符
3.BufferedReader:字符输入流,提供通用的缓冲方式文本读取,readLine读取一个文本行, 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
4.FileOutputStream:输出流到文件中,字节输出流
5.DataOutputStream:数据输出流

读取第一步,了解为什么要使用这些流

1.从文件中读取数据如下图
在这里插入图片描述
代码如下

InputStreamReader file = new InputStreamReader( new FileInputStream("src/main/java/radwtmp1"));
        BufferedReader bur = new BufferedReader(file);

解释我们读取这一些数据,需要一行一行的读取,BufferedReader中就有个方法readLine可以进行读取,而BufferedReader是字符输入流,.FileInputStream是字节流,我们需要流的转换,因此使用InputStreamReader进行流的转换

第二步:进行相应的处理

这里我是使用getset方法,将数据封装处理

long len = 0;
        File files = new File
                ("src/main/java/record");
        if(files.exists()){
   
            try{
   
                //上一次读取的字符数len文件存在
                FileInputStream fisrecord = new FileInputStream(files);
                DataInputStream dis = new DataInputStream(fisrecord);
                len = dis.readLong();
                dis.close();
                fisrecord.close();
            }catch (Exception e){
   
                len=0;
            }
        }
        bur.skip(len);
        String msg=null;

        while ((msg=bur.readLine())!=null){
   
            len += msg.length()+1;
            //封装数据
           String[] split= msg.split("[|]");
            Environment el=new Environment();
            el.setSrcId(split[0]);
            el.setDesId(split[1]);
            el.setDevId(split[2]);
            el.setSersorAddress(split[3]);
            String sa = split[3];
            el.setCount(Integer.parseInt(split[4]));
            el.setCmd(split[5]);
            el.setStatus(Integer.parseInt(split[7]));
            el.setGather_date(new Timestamp(Long.parseLong(split[8])));

            if (split.length!=9){
   
                continue;
            }

            if("16".equals(sa)){
   
                Environment el2=new Environment();
                el2.setSrcId(split[0]);
                el2.
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值