Android: método más eficiente para leer un archivo de texto grande

Tengo un gran archivo txt (1.5 Mb) como recurso privado en mi aplicación de Android.
El archivo está estructurado así:

"A1|A2|A3|A4#B1|B2|B3|B4#C1|C2|C3|C4#..."


donde A1, A2, A3, B1 ... son cadenas alfanuméricas. Necesito crear un objeto para cada grupo de cadenas, algo como esto:

MyObject objA = new MyObject("A1", "A2", "A3", "A4");
MyObject objB = new MyObject("B1", "B2", "B3", "B4");
...


He desarrollado una clase de lector para leer este archivo ... pero parece un poco lento.
Aquí está:

public class TextFileReader {

    private static Charset charset = Charset.defaultCharset();
    private InputStream stream;
    private InputStreamReader reader;
    private StringBuffer buffer;

    public TextFileReader(Context c, String s) {
        try {
            this.stream = c.openFileInput(s);
            this.reader = new InputStreamReader(this.stream, charset);
            this.buffer = new StringBuffer();
        } catch (FileNotFoundException e) {
        }
    }

    public String readNextSubstring(char div) throws IOException {
        buffer.delete(0, buffer.length());
        int i;
        char c;
        while ((i = reader.read()) > -1) {
            c = (char) i;
            if (c == div) break;
            buffer.append(c);
        }
        return buffer.toString();
    }
}


Yo uso TextFileReaderde esta manera:

TextFileReader reader = new TextFileReader(context, "big_file.txt");

//First group
String group = reader.readNextSubstring('#');
String[] info = group.split("\\|");
MyObject objA = new MyObject(info[0], info[1], info[2], info[3]);

//Second group
group = reader.readNextSubstring('#');
info = group.split("\\|");
MyObject objB = new MyObject(info[0], info[1], info[2], info[3]);

//Obviously this is done in a while loop :)
...


¿Qué opinas sobre este método? ¿Podría estructurarse de una manera más eficiente?
No me importa el espacio, me importa el tiempo (el emulador toma MUCHO tiempo para leer el archivo)

Respuesta 1

Soy un principiante, así que tengan paciencia conmigo. He creado una aplicación con una ruleta que controla la visibilidad de Editar textos. Cuando ejecuto esta aplicación, una instrucción catch detecta una excepción de punto nulo ...

Tengo que implementar las siguientes operaciones sobre autómatas en Java: Concatenación Intersección de Kleene Star Union Esas operaciones son más fáciles si el autómata es un NFA. Me gustó la implementación ...

Quiero guardar la imagen en el disco como c: / images que es capturada por la cámara web usando java ... y nuevamente quiero mostrar esa imagen en JForm como una etiqueta ... ¿es esto posible usando java y netbeans? ..

¿Es posible ocultar alguna información de la consola de Java? Mi applet toma datos del sitio web externo. Desafortunadamente, en la URL hay algunas informaciones que me gustaría ocultar. Pero cuando lanzo mi applet ...