Esto es lo que hago en una actividad para ampliar / modificar la lectura almacenada según sus necesidades
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("filename.txt")));
// do reading, usually loop until end of file reading
String mLine;
while ((mLine = reader.readLine()) != null) {
//process line
...
}
} catch (IOException e) {
//log the exception
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
}
EDITAR: Mi respuesta tal vez sea inútil si su pregunta es sobre cómo hacerlo fuera de una actividad. Si su pregunta es simplemente cómo leer un archivo del activo, entonces la respuesta está arriba.
ACTUALIZACIÓN :
Para abrir un archivo que especifica el tipo, simplemente agregue el tipo en la llamada InputStreamReader de la siguiente manera.
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("filename.txt"), "UTF-8"));
// do reading, usually loop until end of file reading
String mLine;
while ((mLine = reader.readLine()) != null) {
//process line
...
}
} catch (IOException e) {
//log the exception
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
}
EDITAR
Como @Stan dice en el comentario, el código que estoy dando no es un resumen de líneas. mLinese reemplaza cada pase. Por eso escribí //process line. Supongo que el archivo contiene algún tipo de datos (es decir, una lista de contactos) y cada línea debe procesarse por separado.
En caso de que simplemente desee cargar el archivo sin ningún tipo de procesamiento, tendrá que resumir mLineen cada pase usando StringBuilder()y agregando cada paso.
OTRA EDICIÓN
Según el comentario de @Vincent agregué el finallybloque.
También tenga en cuenta que en Java 7 y superior puede usar try-with-resourcespara usar las características AutoCloseabley Closeablede Java reciente.
CONTEXTO
En unos puntos comentario @LunarWatcher que getAssets()es una classde context. Por lo tanto, si lo llama fuera de un activity, debe consultarlo y pasar la instancia de contexto a la actividad.
ContextInstance.getAssets();
Esto se explica en la respuesta de @Maneesh. Entonces, si esto es útil para usted, vote su respuesta porque es él quien lo señaló.