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

如何使用Scanner读取文件并存储到ArrayList中?

嘿,我明白你刚接触编程,while循环还有点摸不着头脑,别担心,我一步步教你怎么用Scanner读取文件内容并存到ArrayList里~

用Scanner读取文件并存储到ArrayList的分步指南

首先,咱们得先确保你的文本文件格式是对的——比如每个形容词/名词单独占一行,这样Scanner读取起来会很方便。接下来,我会把代码补全,同时解释每一步的作用,帮你理解while循环在这里的用法。

第一步:初始化ArrayList和编写通用读取方法

你已经声明了三个ArrayList,接下来咱们写一个通用的读取方法,不用重复写三次相同的逻辑:

// 通用读取方法:传入文件路径,返回存储内容的ArrayList
private ArrayList<String> readFile(String filePath) throws FileNotFoundException {
    ArrayList<String> list = new ArrayList<>();
    // 创建Scanner对象,关联目标文件
    Scanner scanner = new Scanner(new File(filePath));
    
    // 核心的while循环:只要文件里还有下一行内容,就继续执行循环
    while (scanner.hasNextLine()) {
        // 读取当前行的文本(自动跳过换行符)
        String line = scanner.nextLine();
        // 把读取到的内容添加到ArrayList中
        list.add(line);
    }
    // 用完Scanner记得关闭,释放资源
    scanner.close();
    return list;
}

第二步:在JavaFX的start方法里调用读取方法

因为你是JavaFX应用,所以可以在start方法里初始化这三个列表:

@Override
public void start(Stage primaryStage) {
    try {
        // 假设你的三个文件分别叫adjectives1.txt、adjectives2.txt、nouns.txt,放在项目根目录
        adjectives1 = readFile("adjectives1.txt");
        adjectives2 = readFile("adjectives2.txt");
        nouns = readFile("nouns.txt");
        
        // 这里可以继续写生成侮辱性语句的逻辑,比如随机取三个列表里的元素组合
        // 比如:String insult = "You are a " + adjectives1.get(0) + " " + adjectives2.get(0) + " " + nouns.get(0);
    } catch (FileNotFoundException e) {
        // 处理文件找不到的异常,新手可以先打印错误信息排查问题
        e.printStackTrace();
        System.out.println("找不到指定的文件,请检查文件路径是否正确!");
    }
}

关键知识点拆解

  • scanner.hasNextLine():这个方法会检查文件里是否还有未读取的行,返回true就说明还有内容,while循环就会继续执行——这就是while循环在这里的核心作用:直到把文件所有内容读完才停止。
  • scanner.nextLine():读取当前行的纯文本内容,自动忽略行尾的换行符,所以你拿到的就是每行的实际内容。
  • 异常处理:读取文件可能会遇到找不到文件的情况,所以必须处理FileNotFoundException,这里用try-catch捕获并提示错误,更适合新手排查问题。

额外小提示

  • 如果你不确定文件路径,可以先用绝对路径测试,比如Windows的"C:/Users/你的用户名/Documents/adjectives1.txt",或者Linux/Mac的"/home/你的用户名/adjectives1.txt"。
  • 读取完后可以打印列表内容确认是否成功:System.out.println(adjectives1);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:05:04