¿Cómo puedo leer un archivo de texto en Android?

Quiero leer el texto de un archivo de texto. En el código a continuación, se produce una excepción (eso significa que va al bloque catch ). Puse el archivo de texto en la carpeta de la aplicación. ¿Dónde debería poner este archivo de texto (mani.txt) para leerlo correctamente?

  try { InputStream instream = openFileInput("E:\\test\\src\\com\\test\\mani.txt"); if (instream != null) { InputStreamReader inputreader = new InputStreamReader(instream); BufferedReader buffreader = new BufferedReader(inputreader); String line,line1 = ""; try { while ((line = buffreader.readLine()) != null) line1+=line; }catch (Exception e) { e.printStackTrace(); } } } catch (Exception e) { String error=""; error=e.getMessage(); } 

Prueba esto :

Supongo que su archivo de texto está en la tarjeta sd

  //Find the directory for the SD Card using the API //*Don't* hardcode "/sdcard" File sdcard = Environment.getExternalStorageDirectory(); //Get the text file File file = new File(sdcard,"file.txt"); //Read text from file StringBuilder text = new StringBuilder(); try { 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) { //You'll need to add proper error handling here } //Find the view by its id TextView tv = (TextView)findViewById(R.id.text_view); //Set the text tv.setText(text.toString()); 

Los siguientes enlaces también pueden ayudarlo a:

¿Cómo puedo leer un archivo de texto de la tarjeta SD en Android?

¿Cómo leer archivos de texto en Android?

Archivo de recursos sin formato de lectura de texto de Android

Si quieres leer el archivo de la tarjeta SD. Entonces, el siguiente código puede ser útil para usted.

  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); Log.i("Test", "text : "+text+" : end"); text.append('\n'); } } catch (IOException e) { e.printStackTrace(); } finally{ br.close(); } TextView tv = (TextView)findViewById(R.id.amount); tv.setText(text.toString()); ////Set the text to text view. } } 

Si quiere leer el archivo de la carpeta de activos, entonces

 AssetManager am = context.getAssets(); InputStream is = am.open("test.txt"); 

O si desea leer este archivo desde la carpeta res/raw , donde se indexará el archivo y se podrá acceder mediante una identificación en el archivo R:

 InputStream is = getResources().openRawResource(R.raw.test); 

Buen ejemplo de lectura de archivos de texto desde la carpeta res / raw

Coloque su archivo de texto en Carpeta de elementos … y lea el archivo desde esa carpeta …

ver enlaces de referencia a continuación …

http://www.technotalkative.com/android-read-file-from-assets/

http://sree.cc/google/reading-text-file-from-assets-folder-in-android

Leyendo un archivo de texto simple

Espero que ayude …

Primero, almacena tu archivo de texto en la carpeta sin formato.

 private void loadWords() throws IOException { Log.d(TAG, "Loading words..."); final Resources resources = mHelperContext.getResources(); InputStream inputStream = resources.openRawResource(R.raw.definitions); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); try { String line; while ((line = reader.readLine()) != null) { String[] strings = TextUtils.split(line, "-"); if (strings.length < 2) continue; long id = addWord(strings[0].trim(), strings[1].trim()); if (id < 0) { Log.e(TAG, "unable to add word: " + strings[0].trim()); } } } finally { reader.close(); } Log.d(TAG, "DONE loading words."); } 

Prueba esto

 try { reader = new BufferedReader(new InputStreamReader(in,"UTF-8")); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } String line=""; String s =""; try { line = reader.readLine(); } catch (IOException e) { e.printStackTrace(); } while (line != null) { s = s + line; s =s+"\n"; try { line = reader.readLine(); } catch (IOException e) { e.printStackTrace(); } } tv.setText(""+s); } 

Prueba este código

 public static String pathRoot = "/sdcard/system/temp/"; public static String readFromFile(Context contect, String nameFile) { String aBuffer = ""; try { File myFile = new File(pathRoot + nameFile); FileInputStream fIn = new FileInputStream(myFile); BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn)); String aDataRow = ""; while ((aDataRow = myReader.readLine()) != null) { aBuffer += aDataRow; } myReader.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return aBuffer; } 
 // working public static String getStringFromFile (String filename) throws Exception { //Find the directory for the SD Card using the API //*Don't* hardcode "/sdcard" File sdcard = Environment.getExternalStorageDirectory(); //Get the text file File file = new File(sdcard,filename); FileInputStream fin = new FileInputStream(file); String ret = convertStreamToString(fin); //Make sure you close all streams. fin.close(); return ret; }