Autor Tema: programa java registrar eliminar consultar modificar FileWriter BufferedW jGRASP  (Leído 13439 veces)

China

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 24
    • Ver Perfil
Re:Como hago que me elimine el dato archivos java en jgraps
« Respuesta #20 en: 13 de Junio 2018, 22:49 »
Hola que tal de nuevo estaba haceindo el metodo de modificar con tu me lo habias explicado pero al momento de darle que si al modificar me parace este error
Código: [Seleccionar]
java.lang.NullPointerException
at java.io.Writer.write(Writer.java:157)
at CrearFile2.setModificar(CrearFile2.java:237)
at MenuV2.setMenuV2(MenuV2.java:50)
at MenuBueno.main(MenuBueno.java:12)

y despues se sale y me borra todo lo que tengo en el archivo no entiendo el porque ya revise todo y no le encuentro el error

Código: [Seleccionar]
import java.io.*;
import javax.swing.JOptionPane;
import java.util.*;

public class Modificar {
 
  public Modificar()
  {}

File archivo= new File("C:\\Prueba\\EquipoV.txt");
LeerMostrar5 lm5 = new LeerMostrar5();
   
  public void setModificar()
   {
      if (archivo.exists())
      {
         String clave = JOptionPane.showInputDialog("Dame clave a modificar");
         try {
            ArrayList<String> lineas = new ArrayList<>();
            BufferedReader br = new BufferedReader(new FileReader(archivo));
            String linea = br.readLine();
            while (linea != null)
            {
               if (linea.startsWith(clave))
               {
                  int confirmar = JOptionPane.showConfirmDialog(null, "Se ha encontrado:\n"
                        + linea + "\n¿Seguro que quiere modificar?", "Confirmar Modificacion", JOptionPane.YES_NO_OPTION);
                  if (confirmar == JOptionPane.YES_OPTION)
                  {
                     lineas.add(getLineaModificada(linea));
                  }
                  else//No quiere modificar
                     lineas.add(linea);
               }
               else//Linea no coincide con clave
                  lineas.add(linea);
               
               linea = br.readLine();
            }
            br.close();
            //Guarda los cambios en el archivo.
            if (archivo.delete())
            {
               BufferedWriter bw = new BufferedWriter(new FileWriter(archivo, true));
               for (String line: lineas)
               {
                  bw.write(line);
                  bw.newLine();
               }
               bw.close();
               JOptionPane.showMessageDialog(null, "Los cambios se han guardado");
            }
            else//Este en caso de no poder modificar
            {
               JOptionPane.showMessageDialog(null, "No se ha podido modificar el archivo: " + archivo.getAbsolutePath());
            }

         }catch(Exception e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, e.getLocalizedMessage());
         }
      }
      else//No existe archivo
         JOptionPane.showMessageDialog(null, "No existe fichero: " + archivo.getAbsolutePath());
   }
   
   private String getLineaModificada(String linea)
{
String lineaModificada = null;//Esta linea devuelve las modificaciones

if (linea.endsWith("Jugador"))//La linea pertenece a la clase Jugadores
{
String[] datosJugador = linea.split("\\|");
//Construimos un Jugador con los datos obtenidos
Jugadores jugador = new Jugadores();
jugador.setMatricula(Integer.parseInt(datosJugador[0]));
jugador.setNombre(datosJugador[1]);
jugador.setAp(datosJugador[2]);
jugador.setAm(datosJugador[3]);
jugador.setNumeroCa(Integer.parseInt(datosJugador[4]));
jugador.setPosicion(datosJugador[5]);
jugador.setEstatus(datosJugador[6]);
jugador.setSexo(datosJugador[7]);

       //Preguntamos por matricula
int respuesta = JOptionPane.showConfirmDialog(null, "Matricula Actual:\n" + jugador.getMatricula() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)//SÍ quiere modificar
jugador.setMatricula(lm5.getMatricula2());

//Preguntamos por nombre
respuesta = JOptionPane.showConfirmDialog(null, "Nombre Actual:\n" + jugador.getNombre() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setNombre(lm5.getNombreJ());

//Apellido Paterno
respuesta = JOptionPane.showConfirmDialog(null, "Apellido Paterno Actual:\n" + jugador.getAp() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setAp(lm5.getApe());

//Apellido Materno
respuesta = JOptionPane.showConfirmDialog(null, "Apellido Materno Actual:\n" + jugador.getAm() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setAm(lm5.getAma());

//Numero Camiseta
respuesta = JOptionPane.showConfirmDialog(null, "Numero Camiseta Actual:\n" + jugador.getNumeroCa() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setNumeroCa(lm5.getNumC());

//Posicion
respuesta = JOptionPane.showConfirmDialog(null, "Posicion Actual:\n" + jugador.getPosicion() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setPosicion(lm5.getPosic());

//Status
respuesta = JOptionPane.showConfirmDialog(null, "Estado Actual:\n" + jugador.getEstatus() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setEstatus(lm5.getEstatus1());

//Sexo
respuesta = JOptionPane.showConfirmDialog(null, "Sexo Actual:\n" + jugador.getSexo() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setSexo(lm5.getSex1());


        lineaModificada = jugador.toString();
}
else if (linea.endsWith("Personal"))//La linea pertenece a la clase Personal
{
   String[] datosPersonal = linea.split("\\|");

Personal p = new Personal();
p.setClave(Integer.parseInt(datosPersonal[0]));
p.setNombre(datosPersonal[1]);
p.setAp(datosPersonal[2]);
p.setAm(datosPersonal[3]);
p.setPuesto(datosPersonal[4]);
p.setEspecialidad(datosPersonal[5]);
p.setTiempoE(Integer.parseInt(datosPersonal[6]));
p.setSexo(datosPersonal[7]);

         
int respuesta = JOptionPane.showConfirmDialog(null, "Clave Actual:\n" + p.getClave() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)//SÍ quiere modificar
p.setClave(lm5.getClave());

//Preguntamos por nombre
respuesta = JOptionPane.showConfirmDialog(null, "Nombre Actual:\n" + p.getNombre() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setNombre(lm5.getNombrep());

//Apellido Paterno
respuesta = JOptionPane.showConfirmDialog(null, "Apellido Paterno Actual:\n" + p.getAp() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setAp(lm5.getAp2());

//Apellido Materno
respuesta = JOptionPane.showConfirmDialog(null, "Apellido Materno Actual:\n" + p.getAm() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setAm(lm5.getAm2());

//Puesto
respuesta = JOptionPane.showConfirmDialog(null, "Puesto Actual:\n" + p.getPuesto() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setPuesto(lm5.getPuesto1());

//Especialidad
respuesta = JOptionPane.showConfirmDialog(null, "Especialidad Actual:\n" + p.getEspecialidad() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setEspecialidad(lm5.getEsp());

//Tiempo en la empresa
respuesta = JOptionPane.showConfirmDialog(null, "Estado Actual:\n" + p.getTiempoE() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setTiempoE(lm5.getTiempoe());

//Sexo
respuesta = JOptionPane.showConfirmDialog(null, "Sexo Actual:\n" + p.getSexo() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setSexo(lm5.getSex2());

lineaModificada = p.toString();
}
else if (linea.endsWith("Proveedor"))//La linea pertenece a la clase Proveedores
{
String[] datosProveedores = linea.split("\\|");

Proovedores pr = new Proovedores();
pr.setNombre(datosProveedores[0]);
pr.setDireccion(datosProveedores[1]);
pr.setCiudad(datosProveedores[2]);
pr.setEmail(datosProveedores[3]);
pr.setTelefono(datosProveedores[4]);

        //Preguntamos por Nombre
int respuesta = JOptionPane.showConfirmDialog(null, "Nombre Actual:\n" + pr.getNombre() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)//SÍ quiere modificar
pr.setNombre(lm5.getNombrePr());

//Direccion
respuesta = JOptionPane.showConfirmDialog(null, "Direccion Actual:\n" + pr.getDireccion() + "\n¿Modificar?",
"Modificar Proveedores", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
pr.setDireccion(lm5.getDirecpr());

//Ciudad
respuesta = JOptionPane.showConfirmDialog(null, "Ciudad Actual:\n" + pr.getCiudad() + "\n¿Modificar?",
"Modificar Proveedores", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
pr.setCiudad(lm5.getCiudad1());

//Email
respuesta = JOptionPane.showConfirmDialog(null, "Email Actual:\n" + pr.getEmail() + "\n¿Modificar?",
"Modificar Proveedores", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
pr.setEmail(lm5.getEmail());

//Telefono
respuesta = JOptionPane.showConfirmDialog(null, "Telefono Actual:\n" + pr.getTelefono() + "\n¿Modificar?",
"Modificar Proveedores", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
pr.setTelefono(lm5.getTelefono());

lineaModificada = pr.toString();
}

return lineaModificada;//Finalizado el metodo, esta linea contendrá los datos de un Jugador, o un Proveedor o un Personal
}
  }


Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:Como hago que me elimine el dato archivos java en jgraps
« Respuesta #21 en: 14 de Junio 2018, 01:19 »
Hola.

Veo que has creado una nueva clase específica, llamada Modificar,  para el método .setModificar().

Si quieres hacerlo así, has de hacer algunos cambios. Quizás ya los has hecho, pero por si a caso te los indico.

En la clase MenuV2, tendrás que instanciar un objeto de esta clase, tal y como haciamos con la clase CrearFile2

Citar
public final class MenuV2 {
   
   private CrearFile2 cf2 = new CrearFile2();
   private Modificar mod = new Modificar();

   public MenuV2()
   {}

Y despues, en el switch del menú, llamamos el metodo setModificar(), de esta nueva clase, no la de la antigua:

Citar
   case 2:
            cf2.setEliminar(); break; 
         case 3:
            cf2.setConsulta();break;
         case 4:
            cf2.setModificar();
            mod.setModificar();
            break;
         case 5:
            JOptionPane.showMessageDialog(null,"Salio del sistema"); break;


Vale, ahora, respecto a la nueva clase Modificar

Revisa, un par de cosas en la parte donde estaríamos modificando un Proveedor.
1. Comprueba que estás escribiendo el nombre de la clase Proveedor.
Es con una o y dos e.
No con dos oo y una e -- > Proovedor
A no ser que tu hayas declarado esta clase escrita de esta manera, en cuyo caso no debería ser problema para que el programa funcione.

2. Comprueba el atributo telefono del Proveedor si lo tienes declarado como String o como int.
Yo lo tengo como int, por lo tanto, al metodo setTelefono() tengo que pasarselo parseado, ya que del archivo de texto este dato lo obtenemos como tipo String.
ASí que hay que hacer una conversion de tipo de dato en este caso.

Te marco en rojo las líneas donde debes revisar esto:

Citar
else if (linea.endsWith("Proveedor"))//La linea pertenece a la clase Proveedores
      {
         String[] datosProveedores = linea.split("\\|");

         Proveedores pr = new Proveedores();
         pr.setNombre(datosProveedores[0]);
         pr.setDireccion(datosProveedores[1]);
         pr.setCiudad(datosProveedores[2]);
         pr.setEmail(datosProveedores[3]);
         pr.setTelefono(Integer.parseInt(datosProveedores[4]));

Tras todo esto, el programa debería funcionar. A mi me está funcionando.
Lo único que faltaría es añadirle también a esta nueva clase, el metodo de apoyo mostrarDatos(), el que usabamos para coger la "linea fea" con los datos separados por pipes para construir un String y mostrar los datos de forma más elegante.

Te dejo aquí la clase Modificar, tal y como yo la tengo. Ya incluye el metodo mostrarDatos()
Código: [Seleccionar]
import java.io.*;
import javax.swing.JOptionPane;
import java.util.*;

public class Modificar {

File archivo= new File("C:\\Prueba\\EquipoV.txt");
LeerMostrar5 lm5 = new LeerMostrar5();

public Modificar()
{}


public void setModificar()
{
if (archivo.exists())
{
String clave = JOptionPane.showInputDialog("Dame clave a modificar");
try {
ArrayList<String> lineas = new ArrayList<>();
BufferedReader br = new BufferedReader(new FileReader(archivo));
String linea = br.readLine();
while (linea != null)
{
if (linea.startsWith(clave))
{
int confirmar = JOptionPane.showConfirmDialog(null, mostrarDatos(linea)
+ "\n¿Seguro que quiere modificar?", "Confirmar Modificacion", JOptionPane.YES_NO_OPTION);
if (confirmar == JOptionPane.YES_OPTION)
{
lineas.add(getLineaModificada(linea));
}
else//No quiere modificar
lineas.add(linea);
}
else//Linea no coincide con clave
lineas.add(linea);

linea = br.readLine();
}
br.close();
//Guarda los cambios en el archivo.
if (archivo.delete())
{
BufferedWriter bw = new BufferedWriter(new FileWriter(archivo, true));
for (String line: lineas)
{
bw.write(line);
bw.newLine();
}
bw.close();
JOptionPane.showMessageDialog(null, "Los cambios se han guardado");
}
else//Este en caso de no poder modificar
{
JOptionPane.showMessageDialog(null, "No se ha podido modificar el archivo: " + archivo.getAbsolutePath());
}

}catch(Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getLocalizedMessage());
}
}
else//No existe archivo
JOptionPane.showMessageDialog(null, "No existe fichero: " + archivo.getAbsolutePath());
}

private String getLineaModificada(String linea)
{
String lineaModificada = null;//Esta linea devuelve las modificaciones

if (linea.endsWith("Jugador"))//La linea pertenece a la clase Jugadores
{
String[] datosJugador = linea.split("\\|");
//Construimos un Jugador con los datos obtenidos
Jugadores jugador = new Jugadores();
jugador.setMatricula(Integer.parseInt(datosJugador[0]));
jugador.setNombre(datosJugador[1]);
jugador.setAp(datosJugador[2]);
jugador.setAm(datosJugador[3]);
jugador.setNumeroCa(Integer.parseInt(datosJugador[4]));
jugador.setPosicion(datosJugador[5]);
jugador.setEstatus(datosJugador[6]);
jugador.setSexo(datosJugador[7]);

//Preguntamos por matricula
int respuesta = JOptionPane.showConfirmDialog(null, "Matricula Actual:\n" + jugador.getMatricula() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)//SÍ quiere modificar
jugador.setMatricula(lm5.getMatricula2());

//Preguntamos por nombre
respuesta = JOptionPane.showConfirmDialog(null, "Nombre Actual:\n" + jugador.getNombre() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setNombre(lm5.getNombreJ());

//Apellido Paterno
respuesta = JOptionPane.showConfirmDialog(null, "Apellido Paterno Actual:\n" + jugador.getAp() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setAp(lm5.getApe());

//Apellido Materno
respuesta = JOptionPane.showConfirmDialog(null, "Apellido Materno Actual:\n" + jugador.getAm() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setAm(lm5.getAma());

//Numero Camiseta
respuesta = JOptionPane.showConfirmDialog(null, "Numero Camiseta Actual:\n" + jugador.getNumeroCa() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setNumeroCa(lm5.getNumC());

//Posicion
respuesta = JOptionPane.showConfirmDialog(null, "Posicion Actual:\n" + jugador.getPosicion() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setPosicion(lm5.getPosic());

//Status
respuesta = JOptionPane.showConfirmDialog(null, "Estado Actual:\n" + jugador.getEstatus() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setEstatus(lm5.getEstatus1());

//Sexo
respuesta = JOptionPane.showConfirmDialog(null, "Sexo Actual:\n" + jugador.getSexo() + "\n¿Modificar?",
"Modificar Jugador", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
jugador.setSexo(lm5.getSex1());


lineaModificada = jugador.toString();
}
else if (linea.endsWith("Personal"))//La linea pertenece a la clase Personal
{
String[] datosPersonal = linea.split("\\|");

Personal p = new Personal();
p.setClave(Integer.parseInt(datosPersonal[0]));
p.setNombre(datosPersonal[1]);
p.setAp(datosPersonal[2]);
p.setAm(datosPersonal[3]);
p.setPuesto(datosPersonal[4]);
p.setEspecialidad(datosPersonal[5]);
p.setTiempoE(Integer.parseInt(datosPersonal[6]));
p.setSexo(datosPersonal[7]);


int respuesta = JOptionPane.showConfirmDialog(null, "Clave Actual:\n" + p.getClave() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)//SÍ quiere modificar
p.setClave(lm5.getClave());

//Preguntamos por nombre
respuesta = JOptionPane.showConfirmDialog(null, "Nombre Actual:\n" + p.getNombre() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setNombre(lm5.getNombrep());

//Apellido Paterno
respuesta = JOptionPane.showConfirmDialog(null, "Apellido Paterno Actual:\n" + p.getAp() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setAp(lm5.getAp2());

//Apellido Materno
respuesta = JOptionPane.showConfirmDialog(null, "Apellido Materno Actual:\n" + p.getAm() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setAm(lm5.getAm2());

//Puesto
respuesta = JOptionPane.showConfirmDialog(null, "Puesto Actual:\n" + p.getPuesto() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setPuesto(lm5.getPuesto1());

//Especialidad
respuesta = JOptionPane.showConfirmDialog(null, "Especialidad Actual:\n" + p.getEspecialidad() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setEspecialidad(lm5.getEsp());

//Tiempo en la empresa
respuesta = JOptionPane.showConfirmDialog(null, "Estado Actual:\n" + p.getTiempoE() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setTiempoE(lm5.getTiempoe());

//Sexo
respuesta = JOptionPane.showConfirmDialog(null, "Sexo Actual:\n" + p.getSexo() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
p.setSexo(lm5.getSex2());

lineaModificada = p.toString();
}
else if (linea.endsWith("Proveedor"))//La linea pertenece a la clase Proveedores
{
String[] datosProveedores = linea.split("\\|");

Proveedores pr = new Proveedores();
pr.setNombre(datosProveedores[0]);
pr.setDireccion(datosProveedores[1]);
pr.setCiudad(datosProveedores[2]);
pr.setEmail(datosProveedores[3]);
pr.setTelefono(Integer.parseInt(datosProveedores[4]));

//Preguntamos por Nombre
int respuesta = JOptionPane.showConfirmDialog(null, "Nombre Actual:\n" + pr.getNombre() + "\n¿Modificar?",
"Modificar Personal", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)//SÍ quiere modificar
pr.setNombre(lm5.getNombrePr());

//Direccion
respuesta = JOptionPane.showConfirmDialog(null, "Direccion Actual:\n" + pr.getDireccion() + "\n¿Modificar?",
"Modificar Proveedores", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
pr.setDireccion(lm5.getDirecpr());

//Ciudad
respuesta = JOptionPane.showConfirmDialog(null, "Ciudad Actual:\n" + pr.getCiudad() + "\n¿Modificar?",
"Modificar Proveedores", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
pr.setCiudad(lm5.getCiudad1());

//Email
respuesta = JOptionPane.showConfirmDialog(null, "Email Actual:\n" + pr.getEmail() + "\n¿Modificar?",
"Modificar Proveedores", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
pr.setEmail(lm5.getEmail());

//Telefono
respuesta = JOptionPane.showConfirmDialog(null, "Telefono Actual:\n" + pr.getTelefono() + "\n¿Modificar?",
"Modificar Proveedores", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION)
pr.setTelefono(lm5.getTelefono());

lineaModificada = pr.toString();
}

return lineaModificada;//Finalizado el metodo, esta linea contendrá los datos de un Jugador, o un Proveedor o un Personal
}

private String mostrarDatos(String lineaFea)
{
String datosAMostrar;
String[] datos = lineaFea.split("\\|");

if (lineaFea.endsWith("Jugador"))
{
datosAMostrar = "        JUGADOR\n\nMatricula: " + datos[0] + "\nNombre: " + datos[1] + "\nApe. Paterno: " + datos[2]
+ "\nApe. Materno: " + datos[3] + "\nNº Camiseta: " + datos[4] + "\nPosicion: " + datos[5]
+ "\nSexo: " + datos[6];
}
else if (lineaFea.endsWith("Personal"))
{
datosAMostrar = "        PERSONAL\n\nClave: " + datos[0] + "\nNombre: " + datos[1] + "\nApe. Paterno: " + datos[2]
+ "\nApe. Materno: " + datos[3] + "\nPuesto: " + datos[4] + "\nEspecialidad: " + datos[5]
+ "\nTiempo en Empresa: " + datos[6] + "\nSexo: " + datos[7];
}
else if (lineaFea.endsWith("Proveedor"))
{
datosAMostrar = "        PROVEEDOR\n\nNombre: " + datos[0] + "\nDireccion: " + datos[1] + "\nCiudad: " + datos[2]
+ "\nE-Mail: " + datos[3] + "\nTelefono: " + datos[4];
}
else//En el MUY improbable caso de que no pudieramos identificar la clase de la linea...
return lineaFea;//...devolvemos la "linea fea" tal cual. Esta situación no debería ocurrir nunca, pero por si a caso...

return datosAMostrar;
}
}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

China

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 24
    • Ver Perfil
Re:Como hago que me elimine el dato archivos java en jgraps
« Respuesta #22 en: 14 de Junio 2018, 01:34 »
Todo como tu lo mencionas esta tal cual lo unico que cambie fue el telefono ya que le estoy pasando un cachado de errores con matches no se si eso me este perjudicando, me sigue haceindo lo mismo por ejemplo ingreso los datos y cuando quiero modificar de don la clave cual quiero modificar le digo que si pero despues se sale y me manda el error de java. lang y todo lo demas igual me pasa con eliminar que quiero elimnar y pongo la clave a eliminar y me sale no se guardaron los cambios y para que pueda hacerlo tengo que salir y volver a ejecutar y ya lo elimina no sabria e porque hace eso

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:Como hago que me elimine el dato archivos java en jgraps
« Respuesta #23 en: 15 de Junio 2018, 00:44 »
Pues ya no se decir que puede estar fallando.
A mi me funciona todo: altas, bajas, modificaciones, consulta..

En este mensaje te adjunto un .zip  (lo verás al final del mensaje) con mis clases, descárgalo, crea un nuevo package con él y comprueba su funcionamiento.

Por el error que pusiste antes:

Código: [Seleccionar]
java.lang.NullPointerException
at java.io.Writer.write(Writer.java:157)
at CrearFile2.setModificar(CrearFile2.java:237)
at MenuV2.setMenuV2(MenuV2.java:50)
at MenuBueno.main(MenuBueno.java:12)

...parece que falla justo en la linea en la que empieza a escribir los cambios en el archivo:

Citar
if (archivo.delete())
            {
               BufferedWriter bw = new BufferedWriter(new FileWriter(archivo, true));
               for (String line: lineas)
               {
                  bw.write(line);
                  bw.newLine();
               }
               bw.close();

Pero no se por qué, el código parece exactamente igual al mío...
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

China

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 24
    • Ver Perfil
Re:Como hago que me elimine el dato archivos java en jgraps
« Respuesta #24 en: 15 de Junio 2018, 03:38 »
El modificar ya lo arregle pero la eliminacion me trae un problemita de que por ejemplo hago otras funciones como agregar lo hago y me voy a eliminar le doy la clave a elimnar y todo eso le doy si y me arroja en mensaje no se encontro el archivo tal pero me salgo y lo vuevo a ejecutar y hago los pasos procedientes y si lo elimina pero sin hacer alguna otra funcion ¿A que se debe eso? y esta tal cual me lo indicaste

China

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 24
    • Ver Perfil
Re:Como hago que me elimine el dato archivos java en jgraps
« Respuesta #25 en: 15 de Junio 2018, 04:57 »
Ya chque que hace que no lo haga mi listado ese que no lo encuentre no se en que afectara porque hago otra funciones y si lo hagarra pero selecciono listado y ya sale ese error
Código: [Seleccionar]
public void setListado()
   {
            try {
                   //FileReader fr = new FileReader("C:\\Proyecto\\EquipoV.txt");
                   
                   BufferedReader bf = new BufferedReader(new FileReader(archivo));
                   String cad;
                   String cad2="";
                   while ((cad = bf.readLine()) != null){
                         cad2= cad2+cad+"\n";
                   }
                   JOptionPane.showMessageDialog(null,cad2);
              } catch (Exception ex) {
                JOptionPane.showMessageDialog(null,"Se generó una excepción.");
                ex.printStackTrace(System.err);
              }
        }
Este es mi codigo de listado

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:Como hago que me elimine el dato archivos java en jgraps
« Respuesta #26 en: 16 de Junio 2018, 00:50 »
Pues acabo de probar tu código para hacer listado, y me funciona perfectamente.
Ahí salen las tres lineas que tengo en mi archivo de texto:



No se que puede fallarte. Comprueba que en todas las clases estás usando la misma ruta para el archivo.

También puedes comprimir todas tus clases en un zip y adjuntarlas aquí en el foro en tu próximo mensaje.
Para adjuntar, bajo el campo de texto donde escribes tu mensaje, verás una opcion llamada "Opcionas Adicionales" donde puedes adjuntar un archivo.

Así puedo probar tus clases tal cuál tú las tienes. A ver si hay alguna sutil diferencia que hayamos pasado por alto.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

China

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 24
    • Ver Perfil
Re:Como hago que me elimine el dato archivos java en jgraps
« Respuesta #27 en: 16 de Junio 2018, 01:02 »
ya vi el error muchar gracias por la ayuda

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".