Java读取.txt文件内容

直接上代码:

public static void main(String[] args) throws Exception {
        //创建14个List,后续做批量入库的操作
        List<VigourDetail> idList = new ArrayList<>();
        List<VigourDetail> idList025 = new ArrayList<>();
        List<VigourDetail> idList0510 = new ArrayList<>();
        List<VigourDetail> idList0511 = new ArrayList<>();
        List<VigourDetail> idList0512 = new ArrayList<>();
        List<VigourDetail> idList0513 = new ArrayList<>();
        List<VigourDetail> idList0514 = new ArrayList<>();
        List<VigourDetail> idList0515 = new ArrayList<>();
        List<VigourDetail> idList0516 = new ArrayList<>();
        List<VigourDetail> idList0517 = new ArrayList<>();
        List<VigourDetail> idList0518 = new ArrayList<>();
        List<VigourDetail> idList0519 = new ArrayList<>();
        List<VigourDetail> idList0523 = new ArrayList<>();
        List<VigourDetail> idList0527 = new ArrayList<>();
       //指定文件路径
        File file = new File("D:\\logs\\live_20220603.txt");
        //读取文件行数
        LineNumberReader in = new LineNumberReader(new FileReader("D:\\logs\\live_20220603.txt"));
        in.skip(Long.MAX_VALUE);
        //实际读取换行符,所以需要+1
        int num=in.getLineNumber()+1;
        System.out.println("文件行数:"+num);
        try(FileInputStream fileInputStream = new FileInputStream(file)){
            //设置读取的文件流和文件编码
            InputStreamReader reader = new InputStreamReader(fileInputStream, "UTF-8");
            BufferedReader br = new BufferedReader(reader);
            String lineTxt ="";
            //开始读取文件,一行一行读
            while ((lineTxt = br.readLine()) != null) {
                //这里做个简单的校验
                if(lineTxt==null ||"".equals(lineTxt.trim())){
                    System.out.println("存在空行");
                    break;
                }
                //New一个对象
                 VigourDetail vigourDetail = new VigourDetail();

                //根据指定文件行的格式去截     我这里是:账户 # 积分
                //账户
                String account=lineTxt.substring(0,lineTxt.indexOf("#"));
                //积分
                String time= lineTxt.substring(account.length()+1,lineTxt.length());

                //根据账户获取表名称
                String tableName = getTableName(account);

                //我这里是判断属于哪个List
                if (tableName.equals("vigour_detail")){
                    vigourDetail.setAccountId(account);
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList.add(vigourDetail);
                }else if (tableName.equals("vigour_detail_025")){
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList025.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0510")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0510.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0511")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0511.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0512")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0512.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0513")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0513.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0514")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0514.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0515")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    System.out.println(account+"——"+time);
                    idList0515.add(vigourDetail);
                    System.out.println("0515List:"+idList0515.size());
                } else if (tableName.equals("vigour_detail_0516")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0516.add(vigourDetail);
                }else if(tableName.equals("vigour_detail_0517")){
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0517.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0518")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0518.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0519")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0519.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0523")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0523.add(vigourDetail);
                } else if (tableName.equals("vigour_detail_0527")) {
                    vigourDetail.setAccountId(account);
                    //Double taskVigour = vipWebDao.getValue(task.getTaskId());
                    vigourDetail.setChangeValue(Double.valueOf(time));
                    idList0527.add(vigourDetail);
                }
            //这里可以做一系列的入库操作,将14个List入库

            }
            br.close();
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("read file failed!");
        }
    }

//自己封装的获取表名方法
public static String getTableName(String userId) {
        String tableName = "vigour_detail";
        String str = userId.substring(0,4);
        if(userId.startsWith("025")){
            tableName = tableName + "_025";
            return tableName;
        }
        switch (str){
            case "0510" :
                tableName = tableName + "_0510";
                break;
            case "0511" :
                tableName = tableName + "_0511";
                break;
            case "0512" :
                tableName = tableName + "_0512";
                break;
            case "0513" :
                tableName = tableName + "_0513";
                break;
            case "0514" :
                tableName = tableName + "_0514";
                break;
            case "0515" :
                tableName = tableName + "_0515";
                break;
            case "0516" :
                tableName = tableName + "_0516";
                break;
            case "0517" :
                tableName = tableName + "_0517";
                break;
            case "0518" :
                tableName = tableName + "_0518";
                break;
            case "0519" :
                tableName = tableName + "_0519";
                break;
            case "0523" :
                tableName = tableName + "_0523";
                break;
            case "0527" :
                tableName = tableName + "_0527";
                break;
            default:
                break;
        }
        return tableName;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java读取.txt文件内容的示例代码: ```java import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class ReadFile { public static void main(String[] args) { File file = new File("file.txt"); BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } } } } ``` 这个例子中,我们使用了Java的BufferedReader类来读取文件。BufferedReader类可以一行一行地读取文件内容,并且具有缓冲功能,可以提高读取效率。 首先,我们创建了一个File对象,它表示我们要读取文件。然后,我们创建了一个BufferedReader对象,并将其包装在一个FileReader对象中,这样我们就可以使用BufferedReader的readLine()方法一行一行地读取文件内容了。当读取文件末尾时,readLine()方法会返回null,此时我们就可以退出循环了。 在读取文件时,我们还需要处理可能出现的IOException异常。为了保证资源的释放,我们在finally块中关闭了BufferedReader对象。 需要注意的是,我们在这个例子中使用的是相对路径来指定文件,也就是说,我们假设文件与类文件位于同一目录下。如果文件位于其他目录下,我们需要使用绝对路径或相对于当前工作目录的相对路径来指定文件

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值