2015-02-21 10 views
7

Mam tablicy json otrzymał od phpzapisu i odczytu danych JSON do pamięci wewnętrznej android

[ 
    { 
     "name":"Daniel Bryan", 
     "img":"pictures\/smallest\/dierdrepic.jpg", 
     "username":"@dbryan", 
     "user_id":"4" 
    }, 
    { 
     "name":"Devil Hacker", 
     "img":"pictures\/smallest\/belitapic.jpg", 
     "username":"@dvHack", 
     "user_id":"1" 
    } 
] 
  • Co chcę jest zapisu ten danych w folderze danych file_name.anyextension w moich aplikacji lub wszędzie bezpieczne.
  • Przeczytaj również te dane z file_name.anyextension i przekonwertuj je na ważne json array, które można dalej edytować.

Czy ktoś może mi pokazać sposób, w jaki mogę to zrobić?

+0

Zakładam, że masz google „java czytać/zapisu danych do pliku”, więc co ty próbowałeś do tej pory? – beresfordt

+0

'PrintWriter writer = new PrintWriter (" NazwaPliku.txt "," UTF-8 "); writer.println (myjsonstring); writer.close(); '@beresfordt –

+0

Czy mógłbyś umieścić swoje dotychczasowe wysiłki w treści pytania i wyjaśnić, jak to działa? – beresfordt

Odpowiedz

15
private void writeToFile(String data) { 
    try { 
     OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("config.txt", Context.MODE_PRIVATE)); 
     outputStreamWriter.write(data); 
     outputStreamWriter.close(); 
    } 
    catch (IOException e) { 
     Log.e("Exception", "File write failed: " + e.toString()); 
    } 
} 


private String readFromFile() { 

    String ret = ""; 

    try { 
     InputStream inputStream = context.openFileInput("config.txt"); 

     if (inputStream != null) { 
      InputStreamReader inputStreamReader = new InputStreamReader(inputStream); 
      BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
      String receiveString = ""; 
      StringBuilder stringBuilder = new StringBuilder(); 

      while ((receiveString = bufferedReader.readLine()) != null) { 
       stringBuilder.append(receiveString); 
      } 

      inputStream.close(); 
      ret = stringBuilder.toString(); 
     } 
    } 
    catch (FileNotFoundException e) { 
     Log.e("login activity", "File not found: " + e.toString()); 
    } catch (IOException e) { 
     Log.e("login activity", "Can not read file: " + e.toString()); 
    } 

    return ret; 
} 

podczas odczytu z pliku ciąg przekonwertować go do JSONObject lub JsonArray

JSONArray jarray = new JSONArray(str); 
+0

'Metoda openFileInput (String) jest niezdefiniowana dla typu' & 'Metoda openFileOutput (String, int) jest niezdefiniowana dla typu' –

+0

Jeśli klasa nie jest rozszerzona z Activity, użycie metody "openFileInput()" powinno być w następujący sposób: context.openFileInput() –

+0

Naprawiono, ale mam 'JSONArray', a nie' String' do zapisu w pliku @mortezasoeimani –