2011-11-18 59 views
1

我正在嘗試使用Android的內部存儲器將一長串數組保存爲文本文件,然後在不同的活動中訪問該數組。在注意到這個問題後,我在下面這段代碼中隔離了這個問題。Android應用程序內部數據存儲

long[] timings = {200, 400, 600, 1400}; 
try { 
    FileOutputStream fos = openFileOutput("timings", Context.MODE_PRIVATE); 
    OutputStreamWriter osw = new OutputStreamWriter(fos); 
    osw.write(Arrays.toString(timings));   
    osw.close(); 

    FileInputStream fis = openFileInput("timings"); 
    InputStreamReader isReader = new InputStreamReader(fis); 
    char[] buffer = new char[timings.length]; 
    isReader.read(buffer); 

    textField.setText(Arrays.toString(buffer)); 

    fis.close(); 
} catch (IOException e1) { 
    e1.printStackTrace(); 
} 

被設置爲顯示什麼是從文件中讀取具有以下結果的文本字段:

[[,2,0,0] 

我預計是從上面的原始數組的結果。我在這裏做錯了什麼?任何幫助或建議,將不勝感激。

+0

你爲什麼要在一個文件中存放多個?你可以使用其他機制爲那個!像sqlite數據庫/使一些靜態類或使用應用程序類! – vikky

回答

1

替換此:

 InputStreamReader isReader = new InputStreamReader(fis); 
     char[] buffer = new char[timings.length]; 
     isReader.read(buffer); 

     textField.setText(Arrays.toString(buffer)); 

與此:

 DataInputStream in = new DataInputStream(fis); 
     BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
     String sTemp1 = "", sTemp2 = ""; 
     while ((sTemp1 = br.readLine()) != null) { 
      sTemp2 = sTemp1; 
     } 
     in.close(); 

     textField.setText(sTemp2); 

我希望這會幫助你。

+0

非常感謝!這很有幫助。 – Keyawn

相關問題