Lectura/Escritura en .txt en Java

Llevo varios días haciendo un programa en Java, lenguaje en el que soy un novato, y tengo dos acciones que me son imposibles de traducir a este lenguaje y por mucho que haya estando buscando por guías y tutoriales se me están resistiendo.
En concreto tengo que leer un fichero .txt con el siguiente formato:
#
1 1 2
2
3 4
5
7 1
#
1 1
...
Así hasta "N" líneas con "x" números cada una y se guadarían en dos tablas de (N/2)x(N/4) y (N/4)x(N/2) (filas/columnas), por ejemplo, si son 40 líneas dos tablas de 20x10 y 10x20, las (N/2) primeras líneas van en las filas de la 1ª tabla y las (N/2) siguientes van en las columnas de la 2ª tabla, ignorándose los saltos de línea y "#".
Y luego tengo que hacer lo mismo pero a la inversa, a partir de las dos tablas, crear un fichero con ese formato.
¿Habría también alguna forma de no tener que recorrer dos veces el fichero?
Muchísimas gracias que tengo todo el programa hecho menos esas dos acciones.

1 respuesta

Respuesta
1
Pues lo que te podría recomendar es que guardes todo el fichero en un solo Array, incluidos los #.
Luego puedes recorrer el Array tantas veces como quieras e ir poniendo los valore a tu antojo. Cuando leas el # pues haces la acción oportuna.
¿Es esto lo que necesitabas? ¿O es algo más sobre la disposición de las funciones?
Esa es una opción, pero mi problema es que no se como se hace, que código tengo utilizar para hacer la función de leer desde un archivo.
Yo tengo hecho esto que es lo único que ha quedado en claro de los tutoriales que he consultado.
public static void Entrada() {
try {
FileReader fichero = new FileReader ("valores.txt");
BufferedReader lector = new BufferedReader(fichero);
.................................
}
catch (Exception e) {
e.printStackTrace();
}
}
Si conociese algún buen tutorial o algún consejo para poder completarlo lo agradecería muchísimo
Bien
Ahí estas leyendo el fichero, ahora solo tienes que leer linea a linea:
ArrayList matrizFichero = new ArrayList();
while ((sCadena = lector.readLine())!=null) {
    // Aquí tienes que tratar cada linea, teniendo en cuenta que pueden contener más
//de un numero, para separarlos usa la clase stringTokenizer
matrizList. add(sCadena); 
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas