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

Java如何实现运行时让用户传入CSV文件供Scanner读取

实现方案

你可以先通过System.in对应的Scanner读取用户输入的CSV文件绝对/相对路径,校验文件存在且可读后,再构造文件对应的Scanner实例读取内容,不需要预先在代码里写死文件路径。

完整修改后代码

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

public class Main {
    public static void main(String[] args) {
        // 第一步:先接收用户输入的文件路径
        Scanner inputScanner = new Scanner(System.in);
        System.out.print("请输入CSV文件的完整路径:");
        String filePath = inputScanner.nextLine().trim();
        File csvFile = new File(filePath);

        // 校验文件合法性
        if (!csvFile.exists() || !csvFile.isFile() || !csvFile.canRead()) {
            System.out.println("错误:文件不存在或无读取权限,请检查路径");
            inputScanner.close();
            return;
        }

        Scanner fileScanner = null;
        try {
            // 构造文件读取的Scanner
            fileScanner = new Scanner(csvFile);
            // 原有校验逻辑不变
            while (fileScanner.hasNextLine()) {
                String checkString = fileScanner.nextLine();
                boolean testOne = checkString.contains("Text from CSV line");
                if (testOne) {
                    String removingExtraCharacters = checkString.replaceAll("[^\\d.$]", "");
                    System.out.println(removingExtraCharacters);
                }
            }
        } catch (FileNotFoundException e) {
            System.out.println("读取文件失败:" + e.getMessage());
        } finally {
            // 资源关闭
            if (fileScanner != null) {
                fileScanner.close();
            }
            inputScanner.close();
        }
    }
}

关键说明

  • 程序启动后会先打印路径输入提示,你可以直接把CSV文件拖到终端窗口,会自动补全完整路径,回车即可开始读取
  • 额外加了文件合法性校验,避免非法路径直接抛出未捕获异常导致程序崩溃
  • 原有CSV行的校验、处理逻辑完全保留,不需要修改原有业务逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:00