Foro sobre Java SE > Duda con el uso del método get al leer un dato almacenado en un .txt
Los datos están en el array String[] leeDatos
Esta línea: System.out.println("datos: " + datos.get(2));
no tiene sentido, porque esa variable datos no está ni declarada ni inicializada (que se sepa). Y si lo estuviese, no contiene los datos leídos.
Como no dices cuál es el error, solo se puede especular; pero, o bien hay un error de compilación porque la variable no está declarada, o bien sí lo está pero no está inicializada, o bien en la posición 2 no hay datos.
"... me genera un error." No sé si comprendes que puede haber miles de errores en Java, tanto de compilación, como de ejecución, del JDK, o de librerías externas.
Gracias por la respuesta. El error que se presenta es un error de compilación.
Cambié la línea:
System.out.println("datos: " + datos.get(2));
Por:
System.out.println("datos: " + Arrays.get(2));
Y tampoco es válida la línea (cannot find symbol)
Si uso la línea que vosotros me habíais explicado anteriormente, es decir:
System.out.println("datos: " + Arrays.toString(leeDatos));
Se pueden leer todos los datos que tengo guardados perfectamente, pero, lo que necesito es leer una sola posición en este jframe, aclaro que uso la clase leedatos porque requiero leer otras posiciones en otros jframes. Nuevamente gracias por vuestra colaboración.
¿Arrays.get(2)?
¡Pero si los datos están en un array de String!
Los valores en los arrays no se leen con get: los arrays no tienen métodos. Aparte de que Arrays es una clase utilitaria del JDK.
http://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html
leeDatos[1] te devuelve el valor de la posición 2 del array.
Creo que necesitas estudiar los arrays.
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
Nuevamente gracias, efectivamente esa es la solución y efectivamente necesito repasar urgentemente Arrays.
Cordial saludo compañeros hispanos.
Dentro de un jframe estoy tratando de imprimir al pulsar un botòn, un dato que tengo guardado en un archivo txt, si imprimo todo el string funciona correctamente, pero cuando coloco el método "get" para leer un dato en particular, me genera un error.
El siguiente es el código del botón
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try {
String[] leeDatos = new LeeDatos().getDatos();
//System.out.println("datos: " + Arrays.toString(leeDatos));
System.out.println("datos: " + datos.get(2));
//System.out.println("datos: " + datos.get[1]:
} catch (FileNotFoundException ex) {
System.out.println("No se pudo abrir el archivo!" + ex);
}
}
La clase creada para leer datos del archivo txt es la siguiente
package soporteinternet005;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class LeeDatos {
public String[] getDatos() throws FileNotFoundException {
List<String> datos = null;
File fichero = new File("Datos/Data.txt");
if (fichero.exists()) {
datos = new ArrayList();
Scanner lector = new Scanner(fichero);
while (lector.hasNextLine()) {
datos.addAll(Arrays.asList(lector.next().split("♪")));
}
lector.close();
}
return datos == null ? new String[0] : datos.toArray(new String[0]);
}
}
Gracias por la atención y colaboración.