gpt4 book ai didi

java - 指向属性文件中的文件夹和文件的更好方法?

转载 作者:行者123 更新时间:2023-12-02 00:05:52 25 4
gpt4 key购买 nike

我想知道是否有更好的方法在属性文件中指向 PATH。考虑以下代码:

public class Properties
{
//MIKE
public final static String PATH_TO_FILE_A = "C:\\programmer_MIKE\fileA.txt";
public final static String PATH_TO_FILE_B = "C:\\programmer_MIKE\fileB.txt";

//BILL
//public final static String PATH_TO_FILE_A = "/Users/BILL/Desktop/fileA.txt";
//public final static String PATH_TO_FILE_B = "/Users/BILL/Desktop/fileB.txt";
}

当任何开发人员需要调用 FILE_A 时,他只需执行以下操作:

File file = new File(Properties.PATH_TO_FILE_A);

如果 BILL 注释掉了 MIKE 的 PATH_TO_FILE_A,这对他来说没问题。

问:有更好的设计吗?如果 BILL 提交了包括属性文件在内的工作 - 他会给 MIKE 带来问题(不用担心,稍后他会得到一杯拿铁咖啡)。

  • 文件很大(2-4Gb),我们不想将它们放在我们的存储库(svn)中,有时只有临时文件夹来创建 PDF,所以我们不想将它们放在“./docs”路径。

感谢您的指点!

最佳答案

如果出于某种原因您确实必须有硬编码路径,那么您可以将它们存储在某种按用户名索引的 map 中。像这样的东西:

public class Properties {

private static Map<String, DeveloperPaths> properties = create();

private static Map<String, DeveloperPaths> create() {

Map<String, DeveloperPaths> properties = new HashMap<String, DeveloperPaths>();

properties.put("mike", new DeveloperPaths(
"C:\\programmer_MIKE\fileA.txt",
"C:\\programmer_MIKE\fileB.txt")
);

properties.put("bill", new DeveloperPaths(
"/Users/BILL/Desktop/fileA.txt",
"/Users/BILL/Desktop/fileB.txt")
);

return properties;
}

public static File FileA()
{
String user = System.getProperty("user.name");
return properties.get(user).fileA;
}

public static File FileB()
{
String user = System.getProperty("user.name");
return properties.get(user).fileB;
}

}

class DeveloperPaths {
public File fileA;
public File fileB;

public DeveloperPaths(String pathA, String pathB) {
fileA = new File(pathA);
fileB = new File(pathB);
}
}

然后,无论开发者是谁,访问每个路径的代码都是相同的,例如:

File myFile = Properties.fileA();

关于java - 指向属性文件中的文件夹和文件的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com