txt - ¿Cómo puedo leer un archivo de texto de la tarjeta SD en Android?
ficheros en android memoria externa (5)
Cuidado: algunos teléfonos tienen 2 tarjetas SD, una interna y una extraíble. Puede encontrar el nombre de la última a través de una aplicación estándar: "Mijn Bestanden" (en inglés: "MyFiles"?). Cuando abro esta aplicación (elemento: todos los archivos), la ruta de la carpeta abierta es "/ sdcard", al desplazarse hacia abajo hay una entrada "external-sd", al hacer clic se abre la carpeta "/ sdcard / external_sd /". Supongamos que quiero abrir un archivo de texto "MyBooks.txt". Utilizaría algo como:
String Filename = "/mnt/sdcard/external_sd/MyBooks.txt" ;
File file = new File(fname);...etc...
Soy nuevo en el desarrollo de Android.
Necesito leer un archivo de texto de la tarjeta SD y mostrar ese archivo de texto. ¿Hay alguna manera de ver un archivo de texto directamente en Android o, de lo contrario, cómo puedo leer y visualizar el contenido de un archivo de texto?
En respuesta a
No codificar / tarjeta SD /
A veces TENEMOS que codificarlo como en algunos modelos de teléfonos, el método API devuelve la memoria interna del teléfono.
Tipos conocidos: HTC One X y Samsung S3.
Environment.getExternalStorageDirectory (). GetAbsolutePath () da una ruta diferente - Android
En su diseño , necesitará algo para mostrar el texto. Un TextView
es la elección obvia. Entonces tendrás algo como esto:
<TextView
android:id="@+id/text_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
Y tu código se verá así:
//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);
Esto podría ir en el método onCreate()
de tu Activity
o en otro lugar, dependiendo de lo que quieras hacer.
BufferedReader br = null;
try {
String fpath = Environment.getExternalStorageDirectory() + <your file name>;
try {
br = new BufferedReader(new FileReader(fpath));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
String line = "";
while ((line = br.readLine()) != null) {
//Do something here
}
package com.example.readfilefromexternalresource;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.os.Environment;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;
public class MainActivity extends Activity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView)findViewById(R.id.textView);
String state = Environment.getExternalStorageState();
if (!(state.equals(Environment.MEDIA_MOUNTED))) {
Toast.makeText(this, "There is no any sd card", Toast.LENGTH_LONG).show();
} else {
BufferedReader reader = null;
try {
Toast.makeText(this, "Sd card available", Toast.LENGTH_LONG).show();
File file = Environment.getExternalStorageDirectory();
File textFile = new File(file.getAbsolutePath()+File.separator + "chapter.xml");
reader = new BufferedReader(new FileReader(textFile));
StringBuilder textBuilder = new StringBuilder();
String line;
while((line = reader.readLine()) != null) {
textBuilder.append(line);
textBuilder.append("/n");
}
textView.setText(textBuilder);
} catch (FileNotFoundException e) {
// TODO: handle exception
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if(reader != null){
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}