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); } }
运行测试场景
用命令行参数:
java FileProcessor myInput.txt myOutput.txt输出:
输入文件: myInput.txt 输出文件: myOutput.txt用JVM系统属性:
java -Dinputfile=config.txt -Doutputfile=result.txt FileProcessor输出:
输入文件: config.txt 输出文件: result.txt用默认值:
java FileProcessor输出:
输入文件: input.txt 输出文件: output.txt
注意事项
- 命令行参数需传入至少2个才会覆盖系统属性和默认值;如果只传1个,会自动走系统属性分支
- 可以单独指定某一个系统属性,比如只加
-Dinputfile=custom.txt,输出文件会用默认的output.txt - 系统属性的键名(
inputfile、outputfile)可按需修改,只要和System.getProperty的第一个参数对应就行
内容的提问来源于stack exchange,提问作者Valdemar
相关产品推荐
相关产品推荐

