package concesionaria; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Vector; public class Stock { //stock.txt //private HashMap diccionario_stock = new HashMap(); //Para manejar vectores con objetos: //http://www.forosdelweb.com/f45/array-objetos-488424/ //Arreglo de objetos de tipo Transporte private Vector<Transporte> vectorCarga = new Vector<Transporte>(); private void llenaVector(Transporte tc) { this.vectorCarga.addElement(tc); } public Vector<Transporte> getVector() { return vectorCarga; } public String[] getArregloCarga() { String [] arreglo = new String[9]; for (int i = 0; i < vectorCarga.size(); i++) { //System.out.println(vectorCarga.firstElement().marca.toString()); System.out.println(vectorCarga.elementAt(i).marca.toString()); //Object <vectorCarga> o =<vectorCarga> vectorCarga.elementAt(i); String s = (String) vectorCarga.elementAt(i).getMarca(); arreglo[i] = (String) vectorCarga.elementAt(i).getMarca(); System.out.println(arreglo[i]); } return arreglo; } public void recorreVector() { for (int i = 0; i < vectorCarga.size(); i++) { //System.out.println(vectorCarga.firstElement().marca.toString()); System.out.println(vectorCarga.elementAt(i).marca.toString()); //Object <vectorCarga> o =<vectorCarga> vectorCarga.elementAt(i); String s = (String) vectorCarga.elementAt(i).getMarca(); System.out.println(s); } /* // aqui sacamos el objeto que se encuantra en el indice o posicion i-esima Object objeto = vectorCarga.elementAt(i); // si queremos convertirlo a algun tipo, nos toca hacer un casting (Tipo), asi: String str = (String) objeto; // ojo! esto solo lo puedes hacer si agregaste objetos de tipo String en el vector objeto.getMarca(); }*/ } public Stock() { /* ############################################################### * Comienza lectura del archivo que contiene el stock * ############################################################### * Cuidado: este archivo, llamado stock.txt debe esta ubicado en * la raiz del proyecto, no en src/concesionaria * * Contiene una información del tipo * * particular,fox,azul,2003,nafta,50000,10 * particular,palio,rojo,2005,nafta,45000,18 * pasajero,traffic,blanco,2001,gasoil,62000,5 * pasajero,nissan,crema,2002,gasoil,68000,4 * carga,scania,negro,2008,gasoil,200000,3 * carga,ford,blanco,2009,gasoil,180000,4 * ... * etc */ File archivo_stock = null; FileReader fr3 = null; BufferedReader br3 = null; try { // Apertura del fichero y creacion de BufferedReader para poder // hacer una lectura comoda (disponer del metodo readLine()). archivo_stock = new File("stock.txt"); fr3 = new FileReader(archivo_stock); br3 = new BufferedReader(fr3); //Linea leera lineas completas String linea; //enPedacitos recibirá las partes de esa linea que esten entre , String[] enPedacitos = null; /* * Cualquiera sea el tipo de vehículo, el calculo del precio de venta se realiza mediante el siguiente método: Precio Venta = Precio de Fabrica * 1.21 + Utilidad + Impuestos Los impuestos se obtienen de una tabla (archivo.txt) que contiene los valores correspondientes a cada tipo de vehículo. Estos valores deben poder modificarse si es necesario. Las utilidades se obtienen de una tabla (archivo.txt) que contiene los valores correspondientes a cada marca de vehículo. Estos valores deben poder modificarse si es necesario. */ // Lectura del archivo: //----------------------------------------------------------------- //Recorremos todo el archivo, mientras sea distinto de nulo while ((linea = br3.readLine()) != null) { enPedacitos = linea.split(","); //this.diccionario_coeficientes.put(new Integer(enPedacitos[0]), new Integer(enPedacitos[1])); //en lugar de usar un hashmap usaremos un array de objetos. //He creado algunos setters en Transporte.java //if (enPedacitos[0].equals("carga")) { Transporte unTransporte = new Transporte(); //Relleno el objeto con los valores del archivo unTransporte.setMarca(enPedacitos[1]); unTransporte.setColor(enPedacitos[2]); int aux = Integer.parseInt(enPedacitos[3]); unTransporte.setAnioFabricac(aux); unTransporte.setTipoCombustible(enPedacitos[4]); double aux2 = Double.parseDouble(enPedacitos[5]); unTransporte.setPrecFabrica(aux2); int aux3 = Integer.parseInt(enPedacitos[6]); unTransporte.setCantidadEnStock(aux3); //por fin el objeto unTransporte esta lleno: a mandarlo al Vector! this.llenaVector(unTransporte); //ACA ME QUEDÉ: //RELLENAR LOS OTROS VECTORES //POBLAR LAS JLists con los objetos //} } //Pongo a salvo el archivo contra cuelgues o caidas del sistema. //Si toda su información esta en RAM, no tiene sentido que siga abierto fr3.close(); br3.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } /* * ############################################################### * FIN lectura del archivo que contiene el stock * ############################################################### */ } //para probar nomas public static void main(String[] args) { //esto ok //new Stock().recorreVector(); Stock unStock = new Stock(); Vector v = unStock.getVector(); for (int i = 0; i < v.size(); i++) { TransporteCarga aux = (TransporteCarga) v.elementAt(i); String s = (String) aux.getMarca(); System.out.println(s); //Object o = (TransporteCarga) v.elementAt(i); //System.out.println(o.getMarca().toString); //System.out.println(vectorCarga.firstElement().marca.toString()); //System.out.println(v.elementAt(i).marca.toString()); //Object <vectorCarga> o =<vectorCarga> vectorCarga.elementAt(i); //String s = (String)v.elementAt(i).getMarca(); //System.out.println(s); // v.elementAt(i). } } }