2011-03-04 243 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

相關問題