Lectura y almacenamiento de txt. contenido del archivo en una lista de matriz

Tengo un archivo .txt y deseo leerlo y almacenar su contenido como una lista de arreglos. Los datos en el archivo .txt son así:

1984      1   0.20  25.10   4.40  11.20   0.60   4.80   0.10   0.00   5.90  22.50   5.90  12.70   6.00   3.80   0.60  10.70   4.20   0.00   0.00   0.00   7.90   4.00  23.70   3.20   5.80   3.00   0.60   6.00   1.70   7.50   1.20

Todo en una línea, 1984 por año, 1 por meses, otros valores para los respectivos días de los meses. Deseo almacenar cada línea (idealmente, cada variable) en una ranura diferente para que sea fácilmente accesible por índice.

Escribí este código para leer el archivo y almacenar las variables en una lista de matrices, ya que no estoy seguro del tamaño de la matriz necesaria.

import java.io.*;
import java.util.*;

public class reader {
    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader(
                    "2RainfallDataLanc.txt"));
            String line = null;
            ArrayList<String[]> rows = new ArrayList<String[]>();
            while ((line = reader.readLine()) != null) {
                String[] row = line.split("/t");
                rows.add(row);
            }
            System.out.println(rows.toString());
        } catch (IOException e) {
        }
    }
}

Recibo un mensaje de error. ¿Podría alguien decirme cuál es el problema con mi código, por favor?

preguntado el 21 de mayo de 12 a las 19:05

¿Qué mensaje de error recibes? Publique el stacktrace. -

si su separador es una pestaña, entonces debe escapar con "\t". Otras cosas me parecen bien. Tal vez pueda echar un vistazo al marco commons-lang para tener una mejor funcionalidad de división de cadenas :) ¡Buena suerte! -

Recibo una línea de: [[Ljava.lang.String;@360be0, [Ljava.lang.String;@45a877] Me disculpo si no veo algo aquí, soy nuevo en Java. ¿Es por system.out.println(rows.toString())? En caso afirmativo, ¿están todas las variables almacenadas por matriz mirando el código? -

1 Respuestas

Intenta usar

for (String[] row : rows) {
    System.out.println(Arrays.toString(row));
}

Para ver la salida. ToString en una matriz no produce nada útil

Suponiendo que sus puntos de datos estén separados por espacios en blanco, podría intentar analizarlos con esta línea

String[] row = line.split("\\s+");

+ significa 1 o más apariciones del símbolo delante de él (\s es la forma abreviada de espacio en blanco, consulte Expresiones regulares en Java)

contestado el 21 de mayo de 12 a las 19:05

Gracias, eso ayudó. Es bastante útil para ver la salida de la matriz. Sin embargo, actualmente, cada línea de datos se almacena como un elemento de la matriz. Me gustaría que cada variable se almacene como un elemento separado si es posible. - user1408525

Muchas gracias por su ayuda :) - user1408525

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.