elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Guardar lineas de un archivo java en un vector
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Guardar lineas de un archivo java en un vector  (Leído 4,339 veces)
Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Guardar lineas de un archivo java en un vector
« en: 2 Noviembre 2022, 02:26 am »

Hola todo como estan?

Estaba haciendo un programa el cual consiste en leer un archivo y guardar las lineas leidas en un vector

Hasta ahora tengo esto:
Código:
package proyecto;

import java.io.*;

public class testing{

public static void checkArchivo() throws IOException {
try {
int tamanio = 0,pos = 0;
String socio;


File archivo = new File("socios.txt");
FileReader lector = new FileReader(archivo);

BufferedReader lineas = new BufferedReader(lector);

while((socio = lineas.readLine()) != null)  {
tamanio = tamanio + 1;

}

String[] socios = new String[tamanio];
socio = lineas.readLine();
while((socio = lineas.readLine()) != null)  {
socios[pos++] = socio;

}


for(pos = 0;pos < tamanio; pos ++) {
System.out.println(socios[pos]);

}








} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}



public static void main(String[] args) throws IOException {
checkArchivo();

}
}

archivo
Código:
7399601,nombre,apellido,edad,cedula,direccion,telefono,ubicacion,cuota,tipo,
1893482,nombre,apellido,edad,cedula,direccion,telefono,ubicacion,cuota,tipo,
4659235,nombre,apellido,edad,cedula,direccion,telefono,ubicacion,cuota,tipo,


El problema es que al momento de imprimir el vector me sale todo como "null", alguien tiene una idea de lo que puede ser?

Gracias!!


En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
BloodSharp


Desconectado Desconectado

Mensajes: 820



Ver Perfil WWW
Re: Guardar lineas de un archivo java en un vector
« Respuesta #1 en: 2 Noviembre 2022, 04:34 am »

Hola, el problema es que no retornás al inicio el BufferedReader por lo que va a seguir siendo nulo luego de contar las líneas. También deberías cerrar tanto el archivo de lector como el de líneas:

Código
  1. FileReader lector = new FileReader(archivo);
  2. BufferedReader lineas = new BufferedReader(lector);
  3.  
  4. lineas.mark(1);
  5.  
  6. while((socio = lineas.readLine()) != null) {
  7. tamanio = tamanio + 1;
  8. }
  9.  
  10. lineas.reset();
  11.  
  12. String[] socios = new String[tamanio];
  13. while((socio = lineas.readLine()) != null) {
  14. socios[pos++] = socio;
  15. }
  16.  
  17. lineas.close();
  18. lector.close();


B#


En línea



Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Guardar lineas de un archivo java en un vector
« Respuesta #2 en: 2 Noviembre 2022, 23:26 pm »

Hola, el problema es que no retornás al inicio el BufferedReader por lo que va a seguir siendo nulo luego de contar las líneas. También deberías cerrar tanto el archivo de lector como el de líneas:

Código
  1. FileReader lector = new FileReader(archivo);
  2. BufferedReader lineas = new BufferedReader(lector);
  3.  
  4. lineas.mark(1);
  5.  
  6. while((socio = lineas.readLine()) != null) {
  7. tamanio = tamanio + 1;
  8. }
  9.  
  10. lineas.reset();
  11.  
  12. String[] socios = new String[tamanio];
  13. while((socio = lineas.readLine()) != null) {
  14. socios[pos++] = socio;
  15. }
  16.  
  17. lineas.close();
  18. lector.close();


B#


Hola, pibe!

Gracias por responder, estuve probando el codigo pero de momento no me funciona mira, te dejo todo aca

Código:
package proyecto;

import java.io.*;

public class testing{
public static void removeLineFromFile() {
try {
String socio;
int tamanio = 0,pos = 0;

File archivo = new File("socios.txt");
FileReader lector = new FileReader(archivo);
BufferedReader lineas = new BufferedReader(lector);

lineas.mark(1);

while((socio = lineas.readLine()) != null) {
tamanio = tamanio + 1;
}

lineas.reset();

String[] socios = new String[tamanio];
while((socio = lineas.readLine()) != null) {
socios[pos++] = socio;
System.out.print(socio);
}



lineas.close();
lector.close();


for(pos = 0;pos<tamanio;pos++) {
System.out.println(socios[pos]);
}
}catch(IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
removeLineFromFile();
}
}

Espero que puedas ayudarme, gracias!!!
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
K-YreX


Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Guardar lineas de un archivo java en un vector
« Respuesta #3 en: 5 Noviembre 2022, 13:23 pm »

Echando un vistazo a la documentación de Java sobre el método BufferedReader.mark(int), se puede ver que el parámetro indica el número de caracteres que se pueden leer del stream mientras se sigue manteniendo la marca. Es decir, usando 'lines.mark(1)' se mantendrá la marca hasta que se lea el segundo carácter...

Para que funcione, el número no puede ser menor al número de caracteres que tiene el fichero ya que tu propósito es leerlo entero.

Creo que hay mejores opciones como:
  • Utilizar un ArrayList<String> para poder añadir líneas de forma dinámica sin tener que calcular antes el número de líneas.
  • Utilizar Files.readAllLines() que directamente devuelve un ArrayList con todas las líneas del fichero.

    Si necesitas guardar las líneas en un String[], siempre puedes convertir el ArrayList<String> a String[]
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
guardar la informacion de un archivo de texto (dat) en una tabla o vector T[n]
Java
luis Tovar 3 5,468 Último mensaje 30 Noviembre 2010, 19:40 pm
por joelmanx
Ayuda - Guardar un Arreglo (Vector) dentro de un Archivo TxT
Programación C/C++
alejandrosevenfold 2 10,012 Último mensaje 1 Septiembre 2012, 18:40 pm
por rir3760
listar, guardar en base datos un archivo desde java
Java
washington8277 4 5,091 Último mensaje 1 Febrero 2014, 14:48 pm
por washington8277
Como guardar arraylist en archivo de texto interno android java
Programación General
victor96 8 8,047 Último mensaje 23 Noviembre 2018, 19:36 pm
por victor96
guardar un archivo en java
Java
Beginner Web 7 4,779 Último mensaje 25 Noviembre 2019, 13:10 pm
por MetaNoia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines