当前位置:首页 > Java

java如何读取txt

2026-02-04 18:57:06Java

读取文本文件的常用方法

在Java中,可以通过多种方式读取txt文件内容,以下是几种常见的方法:

使用FileReader和BufferedReader

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadTxtFile {
    public static void main(String[] args) {
        String filePath = "example.txt";
        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Files类(Java 7及以上)

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.io.IOException;

public class ReadTxtFile {
    public static void main(String[] args) {
        String filePath = "example.txt";
        try {
            List<String> lines = Files.readAllLines(Paths.get(filePath));
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Scanner类

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadTxtFile {
    public static void main(String[] args) {
        String filePath = "example.txt";
        try (Scanner scanner = new Scanner(new File(filePath))) {
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

处理大文件的优化方法

对于大文件,使用Files.readAllLines可能会消耗较多内存,此时可以改用流式处理:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;
import java.io.IOException;

public class ReadLargeTxtFile {
    public static void main(String[] args) {
        String filePath = "large_file.txt";
        try (Stream<String> stream = Files.lines(Paths.get(filePath))) {
            stream.forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

指定字符编码

如果需要指定字符编码(如UTF-8),可以在读取时明确设置:

java如何读取txt

import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.io.IOException;

public class ReadTxtFileWithEncoding {
    public static void main(String[] args) {
        String filePath = "example.txt";
        try {
            List<String> lines = Files.readAllLines(
                Paths.get(filePath), 
                StandardCharsets.UTF_8
            );
            lines.forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意事项

  • 文件路径可以是绝对路径或相对路径(相对于项目根目录)。
  • 使用try-with-resources语法(如示例中所示)可以自动关闭资源,避免内存泄漏。
  • 对于大文件,优先选择流式处理(如Files.linesBufferedReader),避免一次性加载全部内容。

以上方法覆盖了从简单到复杂的常见需求,可根据实际场景选择合适的方式。

标签: javatxt
分享给朋友:

相关文章

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一个…

java如何创建包

java如何创建包

创建Java包的步骤 在Java中,包(package)用于组织和管理类文件,避免命名冲突。以下是创建Java包的详细方法: 定义包名 在Java源文件的开头使用package关键字声明包名。包名…

java如何运行程序

java如何运行程序

运行Java程序的步骤 安装Java开发工具包(JDK) 确保系统已安装JDK,可通过命令行输入java -version和javac -version验证。若未安装,需从Oracle官网下载并配置环…

如何搭建java环境

如何搭建java环境

下载JDK 访问Oracle官网或OpenJDK官网下载适合操作系统的JDK安装包。推荐选择长期支持版本(如JDK 17或JDK 21)。 安装JDK 运行下载的安装程序,按照向导完成安装。注意…

java如何遍历map

java如何遍历map

遍历Map的几种方法 在Java中,遍历Map有多种方式,可以根据需求选择合适的方法。以下是常见的几种遍历方式: 使用entrySet遍历 通过entrySet()方法获取键值对的集合,可以同时访问…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…