acá esta el código
Código:
package procesamiento;
/**
*
* @author Jose Angel
*/
import java.util.Scanner;
import java.io.*;
public class Main {
public Main() {
}
public static Articulo aux, aux2, aux_elim, primero; //Auxiliares necesarios para llevar el control de la memoria dinámica
public static int i,j,respuesta_eliminar; //i,j son contadores, respuesta_eliminar es el codigo que se usara para eliminar
public static char respuesta_control, talla; // respuesta_control es para llevar el control del ciclo central, talla para guardar el valor de la talla antes de meterlo en la memoria dinámica
public static boolean encontrado, existe; //valores booleanos que ayudan en la busqueda y en la eliminacion
public static int opcion, numero, buscar; //otros valores, opcion para el menu, numero es el codigo que se le asignara a cada articulo, buscar es el id que se usara para buscar.
public static String nombre, color; //otros valores que se usan para agarrar valores antes de meterlos a la clase.
public static float precio; //otro valor que se usa para agarrar un valor antes de meterlo a la clase.
public static void main(String[] args) {
aux2 = null;
primero = null;
do
{
encontrado = false;
existe = false;
//los valores de arriba deben inicializarce en false.
Scanner teclado= new Scanner(System.in); //lectura desde el teclado para inicializar el menu
System.out.println("Que desea hacer? \n1.- Agregar (1)\n2.- Buscar (2)\n3.- Eliminar (3)\n4.- Mostrar Todo (4)\n5.- Salir (5)");
opcion = teclado.nextInt();//lectura de entero desde el teclado.
switch (opcion)
{
case 1: //opcion agregar
aux = new Articulo();//crea un nuevo nodo en la clase articulo
if (primero == null)
{
primero = aux;
}
Scanner lector_n= new Scanner(System.in); // todos los scanners que vienen aca son para leer los datos necesarios para llenar los campos de la clase
System.out.println("Escriba el nombre del producto:");
nombre = lector_n.next();
aux.nombre = nombre;
Scanner lector_t = new Scanner(System.in);
System.out.println("Escriba la talla del producto:");
talla = lector_t.next(). charAt(0);//lectura de la primera letra de lo que se escribe desde el teclado
aux.talla = talla;
Scanner lector_c = new Scanner(System.in);
System.out.println("Escriba el color del producto:");
color = lector_c.next();
aux.color = color;
Scanner lector_p = new Scanner(System.in);
System.out.println("Escriba el precio del producto:");
precio = lector_p.nextFloat(); //lectura del numero decimal que se escribe desde el teclado
aux.precio = precio;
numero++;
aux.codigo = numero;//asignacion de el codigo al producto
aux2 = aux;
aux.guia = aux2;
System.out.println(aux2.guia);
break;
case 2:
Scanner buscador = new Scanner(System.in);
System.out.println("Escriba el codigo del producto que desea buscar");
buscar = buscador.nextInt() ;//se lee el entero que seria el codigo que se esta buscando
// aux2 = primero;
System.out.println(aux2.guia);
for (int b = 0; i < numero; i++) {//se hace el recorrido a la clas
if (aux2.codigo == buscar) //si se encuentra encontrado va a ser igual a true
{
encontrado = true;
break;
}
aux2 = aux2.guia;
}
if (encontrado == true) //si encontrado fue true mostrara todos los datos de la clase que buscamos por el codigo
System.out.println("Nombre: " + aux2.nombre + " Talla: " + aux2.talla + " Color:" + aux2.color + " Precio:" + aux2.precio+ " Codigo:" + aux2.codigo );
else
System.out.println("No encontrado.");
break;
case 3: //ESTA PARTE NO ESTA BIEN AUN
Scanner eliminar= new Scanner(System.in);
System.out.println("Inserte el codigo del producto que desea eliminar");
respuesta_eliminar = eliminar.nextInt();
aux2 = primero;//nos situamos al inicio de la lista
while (aux2.guia != null){
//si el nodo a eliminar fuera el primero
if (aux2.codigo == respuesta_eliminar){
//guardamos en un auxiliar del siguiente
//del que vamos a eliminar
Articulo auxiliar = aux2.guia.guia;
aux2.guia = null;
aux2.guia = auxiliar;
}
aux2 = aux2.guia;
}
break;
case 4:
while (aux2 != null)
{ //aca se hace el recorrido a todo lo que esta en la clase y lo muestra en pantalla
System.out.println("Nombre: " + aux2.nombre + " Talla: " + aux2.talla + " Color:" + aux2.color + " Precio:" + aux2.precio+ " Codigo:" + aux2.codigo );
aux2 = aux2.guia;//esto es para que se vaya incrementando las direcciones.
}
break;
case 5:
break;
default:
System.out.println("Opcion "+ opcion + " es inválida");
break;
}
Scanner lectura= new Scanner(System.in);//nueva lectura desde teclado para saber si se hara alguna otra cosa en el menu
System.out.println("Desea continuar?");
respuesta_control = lectura.next(). charAt(0);
}while (respuesta_control == 's' || respuesta_control == 'S' );
//aca empieza lo que tiene que ver con el archivo
FileWriter archivo = null; // este valor hace referencia al nuevo archivo que crearemos
PrintWriter escritor = null; // este valor hace referencia al escritor que usaremos para escribir (obviamente D:)
try
{
archivo = new FileWriter("c:/nuevoarchivo.txt"); //aqui seleccionamos el nuevo archivo que usaremos para escribir (si no existe igualmente se crea)
escritor = new PrintWriter(archivo); //esto es lo que nos ayudara a escribir en el archivo
while (aux2 != null){ //hacemos un recorrido a toda la clase
escritor.println("Nombre: " + aux2.nombre + " Talla: " + aux2.talla + " Color:" + aux2.color + " Precio:" + aux2.precio+ " Codigo:" + aux2.codigo ); //y empezamos a escribir linea por linea todos los valores que hay en la clase
aux2 =aux2.guia;//incrementa las direcciones
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// Nuevamente aprovechamos el finally para
// asegurarnos que se cierra el fichero.
if (null != archivo)
archivo.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
Saludos