Java代码如何实现逐行读取文件内容呢?

乔欣 Java经验 发布时间:2023-02-27 09:28:43 阅读数:11173 1
下文笔者讲述使用Java代码逐行读取文件内容的方法分享,如下所示

逐行读取文件内容的实现思路

使用BufferedReader、BufferedReader.lines、Files.readAllLines()
、Guava、Apache Commons IO第三方库进行文件按行读取的操作
例:

使用BufferedReader

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
 
class Main
{
    public static void main(String[] args)
    {
        File file = new File("test.txt");
 
        try (BufferedReader br = new BufferedReader(new FileReader(file)))
        {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Java 8及以上版本,使用BufferedReader.lines()获取所有行信息

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
 
class Main
{
    public static void main(String[] args)
    {
        File file = new File("test.txt");
 
        try {
            BufferedReader reader = new BufferedReader(new FileReader(file));
            reader.lines().forEach(System.out::println);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Files Class中的Files.readAllLines()方法

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.list;
import java.nio.charset.StandardCharsets;
 
class Main
{
    public static void main(String[] args)
    {
        Path path = Paths.get("test.txt");
 
        try {
            List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
            lines.stream().forEach(System.out::println);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Java 8中的Files.lines()方法

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
import java.nio.charset.StandardCharsets;
 
class Main
{
    public static void main(String[] args)
    {
        Path path = Paths.get("test.txt");
 
        try (Stream<String> stream = Files.lines(path, StandardCharsets.UTF_8)) {
            stream.forEach(System.out::println);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Guava库中readLines()方法

 
import com.google.common.io.Files;
 
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
 
class Main
{
    public static void main(String[] args)
    {
        File file = new File("test.txt");
 
        try {
            Files.readLines(file, StandardCharsets.UTF_8)
                .forEach(System.out::println);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Apache Commons IO库中的readLines()方法

import org.apache.commons.io.FileUtils;
 
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
 
class Main
{
    public static void main(String[] args)
    {
        File file = new File("test.txt");
 
        try {
            FileUtils.readLines(file, StandardCharsets.UTF_8)
                    .forEach(System.out::println);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Scanner Class从指定文件扫描值

import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.nio.charset.StandardCharsets;
 
class Main
{
    public static void main(String[] args)
    {
        File file = new File("test.txt");
 
        try (Scanner sc = new Scanner(file, StandardCharsets.UTF_8))
        {
            while (sc.hasNextLine()) {
                System.out.println(sc.nextLine());
            }
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16774623295922.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者