Quantcast
Channel: ¿Por qué no me lee el archivo plano con ArrayList (JAVA)? - Stack Overflow en español
Viewing all articles
Browse latest Browse all 2

¿Por qué no me lee el archivo plano con ArrayList (JAVA)?

$
0
0

El archivo plano escribe porque se va guardando la informacion en el txt, pero no hace la lectura correctamente y esto hace que no pueda ver la cantidad de Prendas que al final pongo en un ciclo. En este caso estoy probando con Indumentaria.

public class Taller2 {    public static void main(String[] args) throws IOException {        ArrayList<Indumentaria> ind1 = new ArrayList<>();        ArrayList<Calzado> cal1 = new ArrayList<>();        ArrayList<Accesorio> acc1 = new ArrayList<>();        String cortarString[] = {"Camisetafresca", "XL","Air Max", "Hombre", "Nike", "Azul oscuro", "Poliester","96", "10990"};        ind1.add(new Indumentaria(cortarString[0], cortarString[1],                cortarString[2], cortarString[3], cortarString[4],                cortarString[5], cortarString[6],                Integer.parseInt(cortarString[7]), Integer.parseInt(cortarString[8])));        ind1.add(new Indumentaria("loca", "dsad", "fdsaf", "gdfsg", "empanda","diomedes", "morcilla", (int) 45, (int) 4));        int op;        String menu = "MENU"+"\n\n1. Crear nueva indumentaria. "+"\n4. Eliminar prenda."+"\n5. Modificar datos."+"\n6. Almacenar base de datos."+"\n7. Tamaños."+"\n0. Salir. ";        do {            op = Integer.parseInt(JOptionPane.showInputDialog(menu));            switch (op) {                case 1:                    String tipoIndumentaria = JOptionPane.showInputDialog("Tipo indumentaria: ");                    String talla = JOptionPane.showInputDialog("Talla: ");                    String nombrePrenda = JOptionPane.showInputDialog("Nombre de la prenda");                    String genero = JOptionPane.showInputDialog("Genero: ");                    String marca = JOptionPane.showInputDialog("Marca: ");                    String color = JOptionPane.showInputDialog("Color: ");                    String material = JOptionPane.showInputDialog("Material");                    int stock = Integer.parseInt(JOptionPane.showInputDialog("Stock: "));                    int precio = Integer.parseInt(JOptionPane.showInputDialog("Precio: "));                    ind1.add(new Indumentaria(tipoIndumentaria, talla,                            nombrePrenda, genero, marca, color, material,                            (int) stock, (int)  precio));                    break;                case 4:                    int op2;                    op2 = Integer.parseInt(JOptionPane.showInputDialog("1. "+"Indumentaria \n2. Calzado \n3. Accesorio \n"));                    switch (op2) {                        case 1:                            String eliminar;                            eliminar = JOptionPane.showInputDialog("Ingrese nombre de indumentaria a eliminar: ");                            for (int i = 0; i < ind1.size(); i++) {                                if (ind1.get(i).getNombrePrenda().equalsIgnoreCase(eliminar)) {                                    ind1.remove(i);                                    JOptionPane.showMessageDialog(null, "Se ha eliminado.");                                    eliminar = "";                                    RA.escribirArchivo(ind1);                                }                            }                            if (!eliminar.equals("")) {                                JOptionPane.showMessageDialog(null, "No se ha encontrado la indumentaria.");                            }                            break;                        case 5:                            int op3;                            op3 = Integer.parseInt(JOptionPane.showInputDialog("1. "+"Indumentaria \n2. Calzado \n3. Accesorio \n"));                            switch (op3) {                                case 1:                                    String modi;                                    int modi2;                                    modi = JOptionPane.showInputDialog("Ingrese nombre de indumentaria a modificar: ");                                    for (int i = 0; i < ind1.size(); i++) {                                        if (ind1.get(i).getNombrePrenda().equalsIgnoreCase(modi)) {                                            modi2 = Integer.parseInt(JOptionPane.showInputDialog("Que desea modificar: \n"+"1. Tipo indumentaria"+"2. Talla"+"3. Nombre prenda"+"4. Genero"+"5. Marca"+"6. Color"+"7. Material"+"8. Stock"+"9. Precio"+"10. Nombre ciudad"));                                            switch (modi2) {                                                case 1:                                                    tipoIndumentaria = JOptionPane.showInputDialog("Tipo indumentaria: ");                                                    ind1.get(i).setTipoIndumentaria(tipoIndumentaria);                                                    break;                                                case 2:                                                    talla = JOptionPane.showInputDialog("Talla: ");                                                    ind1.get(i).setTalla(talla);                                                    break;                                                case 3:                                                    nombrePrenda = JOptionPane.showInputDialog("Nombre prenda: ");                                                    ind1.get(i).setNombrePrenda(nombrePrenda);                                                    break;                                                case 4:                                                    genero = JOptionPane.showInputDialog("Genero: ");                                                    ind1.get(i).setGenero(genero);                                                    break;                                                case 5:                                                    marca = JOptionPane.showInputDialog("Marca: ");                                                    ind1.get(i).setMarca(marca);                                                    break;                                                case 6:                                                    color = JOptionPane.showInputDialog("Color: ");                                                    ind1.get(i).setColor(color);                                                    break;                                                case 7:                                                    material = JOptionPane.showInputDialog("Material: ");                                                    ind1.get(i).setMaterial(material);                                                    break;                                                case 8:                                                    stock = Integer.parseInt(JOptionPane.showInputDialog("Stock: "));                                                    ind1.get(i).setStock(stock);                                                    break;                                                case 9:                                                    precio = Integer.parseInt(JOptionPane.showInputDialog("Precio: "));                                                    ind1.get(i).setPrecio(precio);                                                    break;                                            }                                        }                                    }                                    if (!modi.equals("")) {                                        JOptionPane.showMessageDialog(null, "No se ha encontrado la prenda.");                                    }                                    break;                                default:                                    JOptionPane.showMessageDialog(null, "Ingrese nombre de indumentaria valida");                                    break;                case 7:                    JOptionPane.showMessageDialog(null, "Hay en total "+ ind1.size() +" indumentarias");                    break;                case 0:                    JOptionPane.showMessageDialog(null, "Guardando.");                    break;                default:                    JOptionPane.showMessageDialog(null, "Ingrese opcion valida");                    break;            }            //RA.crear();                      RA.escribirArchivo(ind1);            ind1 = RA.leerArchivo();            System.out.println(" ------------PRENDAS-------- ");            for (int i = 0; i < ind1.size(); i++) {                System.out.println("Tipo indumentaria.........: "+ ind1.get(i).getTipoIndumentaria());                System.out.println("Talla.........: "+ ind1.get(i).getTalla());                System.out.println("Nombre PRENDA.........: "+ ind1.get(i).getNombrePrenda());                System.out.println("Genero.........: "+ ind1.get(i).getGenero());                System.out.println("Marca.........: "+ ind1.get(i).getMarca());                System.out.println("Color.........: "+ ind1.get(i).getColor());                System.out.println("-------------------------------");            }                    System.out.println("HAY EN TOTAL: "+ ind1.size() +" PRENDAS");        } while (op != 0);    }}

Adjunto ahora la clase donde escribo y leo el archivo

public class RA { public static void crear() throws IOException { //Este metodo no hace falta    File f = new File("IndumentariasRA.txt");    if (!f.exists()) {        f.createNewFile();        System.out.println(f.getName() +" Ha sido creado.");    }    System.out.println("Ruta: "+ f.getPath());    System.out.println("Ruta absoluta: "+ f.getAbsolutePath());    System.out.println("Ultima modificacion: "+ f.lastModified());    System.out.println("Tamaño: "+ f.length());}public static void escribirArchivo(ArrayList<Indumentaria> ind1) {    try {        File f = new File("IndumentariasRA.txt");        if (!f.exists()) {            FileWriter fw = new FileWriter(f);            PrintWriter pw = new PrintWriter(fw);            for (int i = 0; i < ind1.size(); i++) {                pw.println(ind1.get(i));            }            pw.flush();            pw.close();            fw.close();        } else if (f.exists()) {            FileWriter fw = new FileWriter(f, true);            PrintWriter pw = new PrintWriter(fw);            for (int i = 0; i < ind1.size(); i++) {                pw.println(ind1.get(i));            }            pw.flush();            pw.close();            fw.close();        }    } catch (IOException ex) {        System.out.println("Error de escritura en el"+" archivo plano indumentarias");    }}//Escribir Archivo Planopublic static ArrayList<Indumentaria> leerArchivo() {    File f;    FileReader fr;    BufferedReader br;    String linea;    ArrayList<Indumentaria> ind1 = new ArrayList<>();    try {        f = new File("IndumentariasRA.txt");        fr = new FileReader(f);        br = new BufferedReader(fr);        while (((linea = br.readLine()) != null)) {            String cortarString[] = linea.split(",");            Indumentaria indumentaria = new Indumentaria(cortarString[0], cortarString[1], cortarString[2], cortarString[3], cortarString[4], cortarString[5], cortarString[6], Integer.parseInt(cortarString[7]), Integer.parseInt(cortarString[8]));            ind1.add(indumentaria);        }//while        br.close();        fr.close();    } catch (IOException ex) {        System.out.println("No se pudo leer el "+"archivo plano indumentarias");    }//FIN LECTURA    return ind1;}

Esta es la clase indumentaria

    public class Indumentaria extends Prenda{    private String tipoIndumentaria;    private String talla;    public Indumentaria(String tipoIndumentaria, String talla, String nombrePrenda, String genero, String marca, String color, String material, int stock, int precio)    {        super(nombrePrenda, genero, marca, color, material, stock, precio);        this.tipoIndumentaria = tipoIndumentaria;        this.talla = talla;    }    public String getTipoIndumentaria()     {        return tipoIndumentaria;    }    public void setTipoIndumentaria(String tipoIndumentaria)     {        this.tipoIndumentaria = tipoIndumentaria;    }    public String getTalla()     {        return talla;    }    public void setTalla(String talla)    {        this.talla = talla;    }    @Override    public int getCodigo()    {        return 98745;    }    @Override    public String getReferencia()    {        return "IND98745";          }    @Override    public double obtenerValorDescuento()    {        return (getPrecio()*0.15);           }    @Override    public double porcentajeDescuento()     {        return 15;    }    @Override    public String toString()     {        return                 super.toString()+","+getTipoIndumentaria()+","+getCodigo()+","+getReferencia()+","+getTalla();//+","+obtenerValorDescuento()+","+porcentajeDescuento();    }}

Ahora la clase "Prenda" que es la superclase

public abstract class Prenda implements ITiendaRopa

{ private String nombrePrenda; private String genero; private String marca; private String color; private String material; private int stock; private int precio;

//private Ciudad ciudad;public Prenda(String nombrePrenda, String genero, String marca, String color, String material, int stock, int precio /*Ciudad ciudad*/) {    this.nombrePrenda = nombrePrenda;    this.genero = genero;    this.marca = marca;    this.color = color;    this.material = material;    this.stock = stock;    this.precio = precio;    //this.ciudad = ciudad;}public String getNombrePrenda() {    return nombrePrenda;}public void setNombrePrenda(String nombrePrenda){    this.nombrePrenda = nombrePrenda;}public String getGenero(){    return genero;}public void setGenero(String genero){    this.genero = genero;}public String getMarca(){    return marca;}public void setMarca(String marca){    this.marca = marca;}public String getColor(){    return color;}public void setColor(String color){    this.color = color;}public String getMaterial() {    return material;}public void setMaterial(String material){    this.material = material;}public int getStock(){    return stock;}public void setStock(int stock){    this.stock = stock;}public int getPrecio(){    return precio;}public void setPrecio(int precio) {    this.precio = precio;}

// public Ciudad getCiudad() // {// return ciudad;// }//// public void setCiudad(Ciudad ciudad) // {// this.ciudad = ciudad;// }

@Overridepublic int getCodigo() {    return 0;//No retorna nada porque de Prenda no se pueden crear objetos}@Overridepublic String getReferencia(){    return "";//No retorna nada porque de Prenda no se pueden crear objetos}public abstract double obtenerValorDescuento();public abstract double porcentajeDescuento();@Overridepublic String toString() {    return               getNombrePrenda()+","+getGenero()+","+getMarca()+","+getColor()+","+getMaterial()+","+getStock()+","+getPrecio();}

}

Aparece este error

run: Exception in thread "main" java.lang.NumberFormatException: For input string: "Camisetafresca" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at taller2.RA.leerArchivo(RA.java:70) at taller2.Taller2.main(Taller2.java:510) C:\Users\Juan Pablo Rivera\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1 BUILD FAILED (total time: 31 seconds)


Viewing all articles
Browse latest Browse all 2




Latest Images