java中按行读取文件内容

这篇具有很好参考价值的文章主要介绍了java中按行读取文件内容。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

      java中按行来读取文件内容,一般对文件也是又要求的,比如文件编码utf-8,内容是按行可读,而不是一堆字节码。这类文件,我们按行读取,主要是方便快速查看内容,并且用这些内容来作别的用途,这类文件内容不宜过多,否则加载容易出现意想不到的问题,比如内存不足。

    java中按行读取,我们最先想到的就是使用BufferedReader这个IO流。构造这个IO流,我们需要传入一个Reader,而Reader还需要一个文件输入流FileInputStream对象。

    如下所示,通过一层一层构建,我们最终通过File构建了一个BufferedReader并且按行读取了文件内容。

public class BufferedReaderExample {
    public static void main(String[] args) {
        try (BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("conf/test.txt")))) {
            String line;
            while ((line = in.readLine())!=null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

   如下所示,文件读取打印结果截图:

java按行读取文件,java,1024程序员节,io,readline,bufferedreader,scanner 

    因为这里是按行读取,也就是每一行是一个字符串结果,最终文件内容就是一个多行字符串,有了这个思路,其实可以把这个按行读取的方法抽取为一个工具方法,返回的结果是一个List<String>,这个可以理解,就是字符串集合。这个方法在commons-io三方库里就有提供,如下所示:

package com.xxx.io;
import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;
public class ReadLineExample {
    public static void main(String[] args) {
        try {
            List<String> list = IOUtils.readLines(new FileInputStream("conf/test.txt"), "UTF-8");
            System.out.println(list);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

    运行结果:

java按行读取文件,java,1024程序员节,io,readline,bufferedreader,scanner 

     通过IOUtils.readLines()源码,我们发现,这里其实也是封装了BufferedReader来进行按行读取:

java按行读取文件,java,1024程序员节,io,readline,bufferedreader,scanner 

    其实按行读取文件,还有一个简单的方式,那就是使用Scanner类来进行操作:

package com.xxx.io;

import java.io.FileNotFoundException;
import java.nio.file.Paths;
import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] args) {
        String filePath = "conf/test.txt";
        try (Scanner scanner = new Scanner(Paths.get(filePath).toFile())) {
            String line;
            while (scanner.hasNextLine()) {
                line = scanner.nextLine();
                System.out.println(line);
            }
        } catch (FileNotFoundException e) {
            System.out.println("read file error : " + e.getMessage());
        }
    }
}

    这里相对于BufferedReader来说,就没有那么复杂,在Scanner构造函数中,我们只需要传入File即可,代码简洁了不少。 文章来源地址https://www.toymoban.com/news/detail-774871.html

到了这里,关于java中按行读取文件内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Golang 按行读取文件的 3 种方法

    Golang 是一种现代的编程语言,它具有高效、简洁和可扩展等特点,因此在各种领域广泛应用。在 Golang 中,读取文件是一个常见的操作。在本篇技术博客中,我将介绍如何在 Golang 中按行读取文件。 Golang 中有一个 bufio 包,它提供了 Scanner 类型,可以方便地按行读取文件。我

    2024年02月09日
    浏览(29)
  • Golang 按行读取文件的三种方法

    Golang 是一种现代的编程语言,它具有高效、简洁和可扩展等特点,因此在各种领域广泛应用。在 Golang 中,读取文件是一个常见的操作。在本篇技术博客中,我将介绍如何在 Golang 中按行读取文件。 Golang 中有一个 bufio 包,它提供了 Scanner 类型,可以方便地按行读取文件。我

    2024年02月08日
    浏览(42)
  • 1024 程序员节,圆一个小小的梦

    Hope is a good thing, maybe the best of things, and no good thing ever dies. 希望是件美丽的东西,也许是最好的东西,而美好的东西是永远不会消逝的。 大家好,我是勇哥 。 1024 , 程序员节,圆了我一个小小的梦。 花了半年时间,我写了一本电子书 ,书名是:《 RocketMQ4.X设计精要 》,我想

    2024年02月08日
    浏览(50)
  • 程序员帮助程序员!用1024拼出更美好的云计算未来

    中国的云计算市场是全球增长最快的。据预测,中国公共云服务市场的全球份额将从 2020 年的 6.5% 增加到 2024 年的 10.5% 以上。 伴随行业的迅速发展,催生了云计算相关人才需求的井喷增长,供需矛盾凸显。据德意志银行分析报告,越来越多IT企业关闭了线下IDC,开始把业务迁

    2024年02月16日
    浏览(44)
  • 1024程序员节特辑:【Spring Boot自动配置原理揭秘】

    主页传送门:📀 传送   Spring Boot 是一个用于创建独立的、生产级别的 Spring 应用程序的框架。它极大地简化了 Spring 应用程序的开发过程,其中一个关键的功能就是自动配置(Auto-Configuration)。   自动配置可以根据项目需求自动配置各种服务和组件,它可以帮助开发者

    2024年02月08日
    浏览(54)
  • 解决github ping不通的问题(1024程序员节快乐!

    1024程序员节快乐!( 随便粘贴一个文档,参加活动 域名解析(域名-IP):https://www.ipaddress.com/ Ubuntu平台 github经常ping不通或者访问缓慢,方法是更改hosts文件 在hosts里添加github的ip 140.82.114.4 www.github.com 199.232.5.194 github.global.ssl.fastly.net 54.231.114.219 github-cloud.s3.amazonaws.com 可以访

    2024年01月18日
    浏览(60)
  • 好用且免费的CodeWhisperer,给1024程序员节送礼来了

          国庆期间没有胆量去人从众的景点,关在家里刷手机时意外在亚马逊的User Group公众号上发现了CodeWhisperer这么个好东西(bu yao qian),以后撸代码也可以提高生产力(fang yang mo yu)了,这还不赶紧上手试一下。看官方介绍说它支持流行的IDE开发工具,包括VS Code、Intelli

    2024年02月08日
    浏览(39)
  • java读取txt文件内容

    有一个txt文件,需要按行读取内容,并按逗号分隔 共19条数据,故输出19。 大家还有什么好的读取方法吗(有没有直接读取int的方法)?可以教教我吗?

    2024年02月13日
    浏览(39)
  • Java读取word文件内容

    今天遇到一个读取word模板内容的需求,在网上找了很多种方案,有的代码比较复杂,有的读出来中文乱码,个人觉得使用Apache下面的poi包去实现起来比较简单,并且不会出现中文乱码的情况。 这次要用到一个新的类:XWPFDocument,它代表一个docx文档。是apache基金会提供的用户

    2024年02月11日
    浏览(30)
  • java读取文件并输出内容

    方法一:使用BuffererReader.继承Reader类 方法二: 使用FileInputStream类

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包