Java如何更高效且大批量地读取文件数据(tsv,csv,txt等等)

1、概述

一般而言,处理大批量的数据,一般倾向于使用python,即方便又省力,但有时候不得不使用Java来读取文件里的数据,再进行处理。所以以下就是我读取文件里的数据时写的代码。

2、方法一

2.1 我的思路(原生方法,可以直接用的)

(1)先传入文件在电脑里的路径(filePath)
(2)再读取文件里的内容到缓冲区里(InputStreamReader)
(3)然后逐行读取(每一行都是字符串,需要自己处理),并存储到List集合里。(bufferedReader.readLine())
(4)最后返回一个List集合

2.2 相关代码(上才艺)

    public List<String> FileRead(String filePath) {
        //定义ArrayList集合
        List<String> list = new ArrayList<>();
        try {
            // 读取文件
            File file = new File(filePath);
            // 判断文件是否存在
            if (file.isFile() && file.exists()) {
                InputStreamReader reader = new InputStreamReader(Files.newInputStream(file.toPath()), StandardCharsets.UTF_8);
                BufferedReader bufferedReader = new BufferedReader(reader);
                try {
                    String str;
                    //循环判断是否文件扫描完
                    while ((str = bufferedReader.readLine()) != null) {
                        //将每一行添加到list集合里
                        list.add(str);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
                bufferedReader.close();
                reader.close();
            } else {
                System.out.println("找不到指定的文件");
            }
        } catch (IOException e) {
            System.out.println("读取文件内容出错");
            e.printStackTrace();
        }
        return list;
    }

3、方法二

3.1 Hutool介绍

使用网上已有的API,方便省时又省力。
推荐网址: Hutool工具类库网址
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅。

3.2 相关代码

 List<String> file = FileUtil.readLines(filePath, StandardCharsets.UTF_8);

filePath:电脑里文件的路径
使用:传入filePath就可以了,然后返回一个集合
我个人推荐使用方法二,但如果对代码十分热爱,同时对自己写的代码有信心的话,可以自己写,或采用方法一,还是很有成就感的。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊凯瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值