Código:
public class Cliente implements Serializable{
private int id;
private String nombre;
private String telefono;
}
private int id;
private String nombre;
private String telefono;
}
Código:
public class Lista implements Serializable{
private Object [] tabla;
public Lista(){
tabla=new Object[0];
}
public Object get(int indice){
Object obj=null;
if(indice>=0 && indice<tabla.length){
obj=tabla[indice];
}
return obj;
}
public int buscar(Object obj){
int indice=-1;
for(int i=0; i<tabla.length && indice==-1; i++){
if(tabla[i].equals(obj)){
indice=i;
}
}
return indice;
}
private Object [] tabla;
public Lista(){
tabla=new Object[0];
}
public Object get(int indice){
Object obj=null;
if(indice>=0 && indice<tabla.length){
obj=tabla[indice];
}
return obj;
}
public int buscar(Object obj){
int indice=-1;
for(int i=0; i<tabla.length && indice==-1; i++){
if(tabla[i].equals(obj)){
indice=i;
}
}
return indice;
}
Código:
Principal{
static int opcion;
static ObjectInputStream ois;
static ObjectOutputStream oos;
static Lista listado;
public static void main(String[]args){
sc=new Scanner(System.in);
listado=new Lista();
}
public static void update(){
try{
System.out.print("Id cliente a modificar: ");
int id=Integer.parseInt(sc.nextLine());
if(id<1 && id>listado.length()){
System.out.println("No existe cliente con id: "+id);
}else{
System.out.print("Introduca nombre: ");
String nombre=sc.nextLine();
System.out.print("Introduzca telefono: ");
String telefono=sc.nextLine();
}
}catch(NumberFormatException nfe){
System.out.println("ERROR. El id debe ser un entero.");
}
}
}
static int opcion;
static ObjectInputStream ois;
static ObjectOutputStream oos;
static Lista listado;
public static void main(String[]args){
sc=new Scanner(System.in);
listado=new Lista();
}
public static void update(){
try{
System.out.print("Id cliente a modificar: ");
int id=Integer.parseInt(sc.nextLine());
if(id<1 && id>listado.length()){
System.out.println("No existe cliente con id: "+id);
}else{
System.out.print("Introduca nombre: ");
String nombre=sc.nextLine();
System.out.print("Introduzca telefono: ");
String telefono=sc.nextLine();
}
}catch(NumberFormatException nfe){
System.out.println("ERROR. El id debe ser un entero.");
}
}
}
Estoy estudiando I/O streams en la parte de ObjectInputStream y ObjectOutputStream. Los métodos de readFile() y writeFile() los tengo y no tengo problemas.
El problema lo tengo en el método de update(), donde tengo que introducir el id del cliente para modificarlo. Si fuese un array normal no habría problema pero el código lo tengo que hacer por medio de la Clase Lista la cual no debo cambiar y de la que he insertado dos métodos. Repito obtenerlo de un array normal no es problema, pero me estoy armando un listo al obtenerlo de listado. En el main tengo un menu que no he insertado ya que creo qeu no hace falta.
Me haría falta un método que recibiese el id y devolviese la posición. Y este método debería estar en la clase Principal.
Espero haberme explicado. Gracias a todos.
Saludos y feliz año.