2011-12-16 18 views
6

Tengo que leer un archivo dict.txt que contiene una cadena para la línea y agregarlos a una lista de arrays.Lectura de InputStream en el Arraylist

yo probamos este:

public ArrayList<String> myDict = new ArrayList<String>(); 

InputStream is = (getResources().openRawResource(R.raw.dict)); 
BufferedReader r = new BufferedReader(new InputStreamReader(is)); 
try { 
    while (r.readLine() != null) { 
     myDict.add(r.readLine()); 
    } 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

pero algo mal ...

+0

se están leyendo dos veces uno en el tiempo y la segunda vez al agregar a la lista. –

Respuesta

12

Usted está iterando dos veces en cada bucle

String line; 
while ((line=r.readLine()) != null) { 
    myDict.add(line); 
} 
+0

¿La variable "línea" en su respuesta debe ser de tipo ArrayList? – Donshon

8

Utilizando Apache IOUtils:

List<String> lines = IOUtils.readLines(inputStream, "UTF-8"); 
+1

¡Sí! SIEMPRE especifica una codificación. Es un buen hábito estar adentro. – Necreaux

Cuestiones relacionadas