You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现文件按行拆分并存储到数组(无需创建新文件)

文件按行拆分存入数组的实现方案

你的代码存在几个明显问题:

  • File类没有split()方法,这个方法属于String类,不能直接调用在File对象上
  • 代码中未初始化myReader就调用close(),会导致编译错误
  • 异常处理不完整,仅捕获了FileNotFoundException,但文件读取过程中还可能出现其他IO异常

以下是两种可行的实现方式:

方法一:使用NIO类库(简洁高效)

适合处理中小文件,一行代码就能完成读取并转成数组:

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

class Read {
    public static void main(String args[]) {
        File targetFile = new File("file.txt");
        try {
            // 读取所有行到List集合,再转换为字符串数组
            List<String> lineList = Files.readAllLines(targetFile.toPath());
            String[] lineArray = lineList.toArray(new String[0]);
            
            // 示例:遍历输出数组内容
            for (String line : lineArray) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

方法二:使用BufferedReader逐行读取(适合大文件)

如果文件体积较大,一次性加载全部内容会占用过多内存,推荐逐行读取:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

class Read {
    public static void main(String args[]) {
        List<String> lineList = new ArrayList<>();
        // 使用try-with-resources语法,自动关闭流资源
        try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
            String currentLine;
            while ((currentLine = reader.readLine()) != null) {
                lineList.add(currentLine);
            }
            // 将List转换为字符串数组
            String[] lineArray = lineList.toArray(new String[0]);
            
            // 示例:遍历输出数组内容
            for (String line : lineArray) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

关键说明

  • Files.readAllLines会将文件所有行一次性读取到内存,代码简洁但不适合超大文件
  • BufferedReader逐行读取,内存占用更低,适合处理大文件
  • 两种方案都处理了IOException,覆盖了文件不存在、读取失败等所有IO异常场景

内容的提问来源于stack exchange,提问作者asgr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:11:07