Java读取含常量的文本文件并将各值存入独立变量的方法
在Java中将文本文件的常量值存入独立变量的方法
根据你的需求,这里提供两种实用的实现方式,适配不同场景:
1. 固定常量直接赋值(适合已知变量名的情况)
如果你的常量是固定的(比如只有s、v),可以直接声明对应变量,读取每行后判断键名赋值:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ConstantHandler { public static void main(String[] args) { // 初始化默认值 double s = 0.0; double v = 0.0; try (BufferedReader reader = new BufferedReader(new FileReader("constants.txt"))) { String line; while ((line = reader.readLine()) != null) { // 分割行内容,处理逗号前后的空格 String[] parts = line.trim().split(",\\s*"); if (parts.length != 2) continue; // 跳过格式错误的行 String key = parts[0].trim(); double value = Double.parseDouble(parts[1].trim()); // 根据键名赋值给对应变量 switch (key) { case "s": s = value; break; case "v": v = value; break; // 新增常量时,添加对应的case即可 } } } catch (IOException | NumberFormatException e) { e.printStackTrace(); } // 直接使用变量进行计算 double time = s / v; System.out.println("计算得到的时间:" + time); } }
2. 使用Map存储(适合变量不固定的场景)
如果后续可能新增更多常量,用Map存储更灵活,无需修改变量声明:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class ConstantHandler { public static void main(String[] args) { Map<String, Double> constantsMap = new HashMap<>(); try (BufferedReader reader = new BufferedReader(new FileReader("constants.txt"))) { String line; while ((line = reader.readLine()) != null) { String[] parts = line.trim().split(",\\s*"); if (parts.length != 2) continue; String key = parts[0].trim(); double value = Double.parseDouble(parts[1].trim()); constantsMap.put(key, value); } } catch (IOException | NumberFormatException e) { e.printStackTrace(); } // 通过键名获取值,getOrDefault避免键不存在时抛出空指针 double s = constantsMap.getOrDefault("s", 0.0); double v = constantsMap.getOrDefault("v", 0.0); double doubleDistance = s * 2; System.out.println("双倍距离:" + doubleDistance); } }
场景选择建议
- 若常量列表固定,优先用第一种方法,代码可读性更高,直接用变量名更直观。
- 若常量可能动态增减,选择第二种方法,扩展性更强。
内容的提问来源于stack exchange,提问作者Gunjeet
相关产品推荐
相关产品推荐

