2017-08-18 4 views
-2

J'essaye de sauver ce tableau booléen. Quand je lis le tableau du tableau de chaînes (parties) dit queBoolean.parseBoolean ne fonctionne pas

 parts[0]=true; 

, mais quand j'utiliser le tableau Boolean.parseBoolean [0] est toujours faux. Quelqu'un peut-il m'aider et me dire ce que je fais mal. S'il te plaît et merci.

public void writeArraytofile() { 
    try { 
     OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("array.txt", Context.MODE_PRIVATE)); 
     outputStreamWriter.write(Arrays.toString(array)); 
     outputStreamWriter.close(); 
    } catch (IOException e) { 
     Log.v("MyActivity", e.toString()); 
    } 
} 
public boolean[] read(){ 

String result = ""; 
boolean[] array = new boolean[2]; 
try { 

    InputStream inputStream = openFileInput("array.txt"); 

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

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

     inputStream.close(); 

     result = stringBuilder.toString(); 

     String[] parts = result.split(" "); 
     for (int i = 0; i < array.length; i++){ 
      array[i]=Boolean.parseBoolean(parts[i]); 

     } 

    } 


} catch (FileNotFoundException e) { 
    Log.v("MyActivity", "File not found" + e.toString()); 
} catch (IOException e) { 
    e.printStackTrace(); 
} catch (NumberFormatException e) { 
    //here you catch and watch the problem 
    Log.e("MyActivity", "cant parse string: " + result); 
} 
return array; 
} 
+2

'parts [0] = true' ne compilerait pas – anomeric

+0

@anomeric pourquoi pas? –

+1

parce que c'est un tableau de chaînes ... – anomeric

Répondre

0

Arrays.toString() imprimera les supports et les virgules, alors quand vous lisez la chaîne en arrière et appelez .split(" "), la première pièce sera "[true,". Puisque ce n'est pas seulement "true", Boolean.parseBoolean() renverra false.