将自己的属性文件放在用Android Studio创建的android项目中的哪里?

时间:2014-05-21 19:22:17

标签: android android-studio

我刚开始使用Android Studio。我不知道在哪里放置我自己的属性文件,因为项目结构中没有assets文件夹。

已发布的代码段在eclipse中运行正常,但在Android Studio中却没有。

代码:

    Properties prop = new Properties();

    try {
        //load a properties file
        prop.load(new FileInputStream("app.properties"));

        //get the property value and print it out
        System.out.println(prop.getProperty("server_address"));

    } catch (IOException ex) {
        ex.printStackTrace();
    }

问题1: 在Android Studio(v0.5.8)中放置我自己的属性文件的位置?

问题2: 我该如何访问它们?

4 个答案:

答案 0 :(得分:11)

默认资源文件夹放在src/main/assets中,如果不存在则创建它。

然后您可以使用以下内容访问该文件:

getBaseContext().getAssets().open("app.properties")

您可以找到有关Gradle Android项目结构here的更多信息。

答案 1 :(得分:6)

在主文件夹中创建一个子文件夹,并将其命名为assets。将所有.properties文件放在此(assets)文件夹中。

<强> SRC-&GT; main-&GT;资产 - &GT; mydetails.properties

您可以使用AssetManager类

访问它
// forward
for(std::string::iterator it = str.begin(); it != str.end(); ++it) {
    unsigned long int c = (unsigned long int) (*it);
    keys.push_back(c);
}

// reverse
for(std::string::reverse_iterator it = str.rbegin(); it != str.rend(); ++it) {
    unsigned long int c = (unsigned long int) (*it);
    keys.push_back(c);
}

答案 2 :(得分:1)

您可以在主文件夹中创建资产子文件夹,然后在其中插入.properties文件。

然后,创建一个打开并读取文件的类,例如:

public class PropertiesReader { 

 private Context context;
 private Properties properties;
 public PropertiesReader(Context context) { 
  this.context = context;
   //creates a new object ‘Properties’
   properties = new Properties();

   public Properties getProperties(String FileName) {
   try {    
    //access to the folder ‘assets’ 
    AssetManager am = context.getAssets(); 
    //opening the file    
    InputStream inputStream = am.open(FileName); 
    //loading of the properties 
    properties.load(inputStream);
   } 
   catch (IOException e) { 
    Log.e("PropertiesReader",e.toString());
   }
  }
  return properties;
 } 
}

有关详细信息,请参阅http://pillsfromtheweb.blogspot.it/2014/09/properties-file-in-android.html

答案 3 :(得分:0)

public static String getProperty(String key, Context context) throws IOException {
    try {
    Properties properties = new Properties();
    AssetManager assetManager = context.getAssets();
    InputStream inputStream = assetManager.open("config.properties");
    properties.load(inputStream);
    return properties.getProperty(key);
   }catch (IOException e){
   e.fillInStackTrace();
   }
return null;
}

文件夹结构:

Folder Structure