gpt4 book ai didi

java - AssetManager 在 Assets 目录中找不到文件

转载 作者:行者123 更新时间:2023-11-29 21:38:46 26 4
gpt4 key购买 nike

尝试从 Assets 目录加载文件,以便将其用作配置文件。 AssetManager 找不到它。 config.global 和 config.properties 都在项目的 Assets 目录中。配置类在 setUp() 函数中生成,然后调用 readConfig 开始。这是主文件中的代码:

protected void setUp() throws Exception {
super.setUp();
mLithium = (LithiumExtension) Trio.getInstance(new LithiumExtension(this))
.getExtension();
config = StorefrontConfig.getInstance();
Resources resources = getActivity().getResources();
AssetManager asM = resources.getAssets();
InputStream in = asM.open("config.global");
OutputStream out = asM.openFd("config.properties").createOutputStream();
config.readConfig(in, out);
setTestSettings();
}

配置代码:

public class Config {

private static Config instance;
public Properties prop;

static {
instance = new Config();
}

private Config () {
prop = new Properties();
}

public void readConfig(InputStream in, OutputStream out) {

try {

prop.load(in);
in.close();

prop.store(out, "yay");
out.close();
}
catch (Exception e) {
System.out.println("Failed to create properties");
System.exit(3);
Log.d("Config", "Failed to create properly initialized config class");
}
}

public static Config getInstance() {

if(instance == null)
instance = new Config();
return instance;
}

public String getProperty (String key) {
return prop.getProperty(key);
}
}

运行时,我得到了 config.globaljava.io.FileNotFoundException。这是在代码的 asM.open("config.global") 行抛出的。坚持了一段时间。任何帮助将不胜感激!

最佳答案

setUp(Context c) 中接收 Context 并使用它来获取 Assets

所以试试看改变

 AssetManager asM = resources.getAssets();

AssetManager asM = c.getAssets();

关于java - AssetManager 在 Assets 目录中找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684265/

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