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

Java实现:优先用传入参数,无则用默认文件,通过-D参数指定输入文件

Java 实现灵活的输入输出文件配置逻辑

核心逻辑说明

优先级顺序明确:

  • 优先用命令行传入的参数(比如运行时java Main input.txt output.txt)
  • 无命令行参数时,读取JVM系统属性(-Dinputfile=xxx.txt和-Doutputfile=yyy.txt)
  • 前两者都没有,就用默认值input.txt和output.txt

完整代码示例

public class FileProcessor {
    public static void main(String[] args) {
        String inputFile;
        String outputFile;

        // 先检查命令行参数
        if (args.length >= 2) {
            inputFile = args[0];
            outputFile = args[1];
        } else {
            // 读取系统属性,没读到就用默认值
            inputFile = System.getProperty("inputfile", "input.txt");
            outputFile = System.getProperty("outputfile", "output.txt");
        }

        // 验证配置(可根据业务需求替换为实际文件处理逻辑)
        System.out.println("输入文件: " + inputFile);
        System.out.println("输出文件: " + outputFile);
    }
}

运行测试场景

  1. 用命令行参数:

    java FileProcessor myInput.txt myOutput.txt
    

    输出:

    输入文件: myInput.txt
    输出文件: myOutput.txt
    
  2. 用JVM系统属性:

    java -Dinputfile=config.txt -Doutputfile=result.txt FileProcessor
    

    输出:

    输入文件: config.txt
    输出文件: result.txt
    
  3. 用默认值:

    java FileProcessor
    

    输出:

    输入文件: input.txt
    输出文件: output.txt
    

注意事项

  • 命令行参数需传入至少2个才会覆盖系统属性和默认值;如果只传1个,会自动走系统属性分支
  • 可以单独指定某一个系统属性,比如只加-Dinputfile=custom.txt,输出文件会用默认的output.txt
  • 系统属性的键名(inputfile、outputfile)可按需修改,只要和System.getProperty的第一个参数对应就行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:25:17