2010-07-27 11 views
10

Estoy guardando detalles en el archivo out.txt que ha creado un archivo de texto en data/data/new.android/files/out.txt. Puedo agregar información al texto, sin embargo, no puedo leer este archivo. Utilicé los siguientes procedimientos para leer el archivo:¿Cómo leer archivos de texto en Android?

File file = new File(activity.getDir("data", Context.MODE_WORLD_READABLE), "new/android/out.txt"); 
BufferedReader br = new BufferedReader(new FileReader(file)); 

¿Alguien me puede ayudar a solucionar este problema?

Atentamente, Soleado.

+0

lo que significa "no puede leer este archivo"? – RoflcoptrException

+0

Quiero decir, estoy tratando de leer el contenido del archivo out.txt – sunny

Respuesta

12

Puede leer una línea a la vez con esto:

FileInputStream fis; 
final StringBuffer storedString = new StringBuffer(); 

try { 
    fis = openFileInput("out.txt"); 
    DataInputStream dataIO = new DataInputStream(fis); 
    String strLine = null; 

    if ((strLine = dataIO.readLine()) != null) { 
     storedString.append(strLine); 
    } 

    dataIO.close(); 
    fis.close(); 
} 
catch (Exception e) { 
} 

Cambie el caso a tiempo para leer todo.

+1

openFileInput no funciona –

+1

también readline está en desuso, por lo tanto, no lo use arriba –

14

@ La respuesta de hermy usa dataIO.readLine(), que ahora está en desuso, por lo que se pueden encontrar soluciones alternativas a este problema en How can I read a text file in Android?. Personalmente utilicé la respuesta de @ SandipArmalPatil ... hice exactamente lo que necesitaba.

StringBuilder text = new StringBuilder(); 
try { 
    File sdcard = Environment.getExternalStorageDirectory(); 
    File file = new File(sdcard,"testFile.txt"); 

    BufferedReader br = new BufferedReader(new FileReader(file)); 
    String line; 
    while ((line = br.readLine()) != null) { 
       text.append(line); 
       text.append('\n'); 
    } 
    br.close() ; 
}catch (IOException e) { 
    e.printStackTrace();   
} 

TextView tv = (TextView)findViewById(R.id.amount); 
tv.setText(text.toString()); ////Set the text to text view. 
7

Sólo hay que poner el archivo (es decir. Yourfile nombre) dentro de la carpeta/res cruda (si se puede crear si no existe) dentro de su proyecto. El sdk generará automáticamente el recurso R.raw.yourfile. para obtener una cadena del archivo de texto, sólo tiene que utilizar el código sugerido por Vovodroid en el siguiente mensaje: Android read text raw resource file

String result; 
    try { 
     Resources res = getResources(); 
     InputStream in_s = res.openRawResource(R.raw.yourfile); 

     byte[] b = new byte[in_s.available()]; 
     in_s.read(b); 
     result = new String(b); 
    } catch (Exception e) { 
     // e.printStackTrace(); 
     result = "Error: can't show file."; 
    } 
Cuestiones relacionadas