2011-03-04 91 views
2

我正在寻找一种方法来将配置设置存储在SD卡上的外部文件上。该应用程序必须查看此外部文件,然后检索某种设置。目前我正试图让它查看一个文件并获得一个名称。我知道你可以将内容存储在共享偏好设置中,但它们可以在内部访问如何为我的Android应用程序创建外部共享pref/config文件?

有人知道一种外在的方式吗?谢谢

这个想法是在SD卡上有一个简单的文本文件或xml文件。所以当一个配置需要改变它通过该文件完成?

EDIT

File sdcard = Environment.getExternalStorageDirectory(); 
    File file = new File(sdcard,"/Config.txt"); 
    StringBuilder text = new StringBuilder(); 
    try { 
     BufferedReader br = new BufferedReader(new FileReader(file)); 
     String line=""; 
     int c; 
     while ((c = br.read()) != -1) { 
      line+=(char)c; 
      if(String.valueOf(c) == ";" & line =="name;"){ 
       String name =""; 
      } 
     } 
    } 

我试图在一个的config.txt文件的读取和到每个值与分离; 但我似乎无法理解我将如何附加名称后面的内容;到变量字符串名称。

的config.txt的文件有以下几点:

名;弗雷德 somethingelse;测试

程序应该知道什么时候它已经得到了名,然后名义变量设置为弗雷德?

+0

你的意思是分享跨多个应用程序的首选 – ingsaurabh 2011-03-04 11:11:23

+0

没有不完全相同的应用程序。但一旦安装,如果我更改外部SD卡文件上的'名称',我想要在应用程序内更改名称。我不想更改代码 – Beginner 2011-03-04 11:23:13

+0

将来我可能想要添加其他设置等。所以类似于网站如何配置/ ini文件 – Beginner 2011-03-04 11:23:49

回答

2

嗨 我在黑莓手机上用逗号分隔或分号分隔的值读取了相同的偏好。当相同的开发来到android开发者(我当时没有在android上)。这就是他们所做的。

我们已经创建了一个文本文件,这样

"name";"value";"data_type" 

例如

"application_runs";"1";"int" 

或者

"trial_period_key";"01ab23cd";"string" 

的数据类型是硬编码,所以我们可以检测到的数据类型。对于变量名称,我们也有硬编码的首选项列表。并且值可以相应地被解析。他们已经编写了基于该txt文件的公共可读共享首选项,使用默认值,他们已经在资产文件夹中复制了“default.txt”以及SD卡中的副本。

此过程的缺点是

  1. 你必须要小心的文件名,并写在文件中的数据(这就是为什么我们已经把一个缺省值文件的资产,因此该应用的原因不会崩溃)

  2. SD卡上的文本文件必须是可读的,您必须将其与解析一起编程。

希望它有帮助。

+0

在android代码中我如何读取文件并知道数据分隔的位置 – Beginner 2011-03-04 13:15:21

+0

使用FileInputStream可以读取文件,并且可以使用'\ n'为每组记录分割字符串,';'或','为每个记录。 – Prasham 2011-03-04 13:20:37

+0

你碰巧知道我在哪里可以看到这样的一个例子吗?谢谢 – Beginner 2011-03-04 13:32:26

相关问题