La empresa Servientrega que opera en goheadstore via a la costa requiere controlar el stock de inventario de su linea de embalaje que contempla tipo cartón, de varias medidas espuma de corcho, sobres, fundas, a cierto costo, estructura un programa en java con manejo de archivos
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
// 1. Definición del objeto Material
class Material implements Serializable {
String tipo;
String medida;
int cantidad;
double costo;
public Material(String tipo, String medida, int cantidad, double costo) {
this.tipo = tipo;
this.medida = medida;
this.cantidad = cantidad;
this.costo = costo;
}
@Override
public String toString() {
return String.format("Tipo: %-12s | Medida: %-10s | Stock: %-5d | Costo: $%.2f",
tipo, medida, cantidad, costo);
}
}
public class GestionInventario {
private static final String ARCHIVO = «inventario_embalaje.txt»;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Material> inventario = cargarDatos();
while (true) {
System.out.println("\n--- SISTEMA DE INVENTARIO SERVIENTREGA (VIA A LA COSTA) ---");
System.out.println("1. Agregar material (Cartón, Espuma, Sobres, Fundas)");
System.out.println("2. Mostrar stock actual");
System.out.println("3. Guardar y Salir");
System.out.print("Seleccione una opción: ");
int opcion = sc.nextInt();
sc.nextLine(); // Limpiar buffer
if (opcion == 1) {
System.out.print("Tipo de material: ");
String tipo = sc.nextLine();
System.out.print("Medida (ej. 40x40cm): ");
String medida = sc.nextLine();
System.out.print("Cantidad inicial: ");
int cant = sc.nextInt();
System.out.print("Costo unitario: ");
double costo = sc.nextDouble();
inventario.add(new Material(tipo, medida, cant, costo));
System.out.println("Material registrado con éxito.");
} else if (opcion == 2) {
System.out.println("\n--- REPORTE DE STOCK ---");
for (Material m : inventario) {
System.out.println(m);
}
} else if (opcion == 3) {
guardarDatos(inventario);
System.out.println("Datos sincronizados. Cerrando sistema...");
break;
}
}
}
// Método para guardar en archivo (Persistencia)
public static void guardarDatos(ArrayList<Material> lista) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(ARCHIVO))) {
for (Material m : lista) {
bw.write(m.tipo + "," + m.medida + "," + m.cantidad + "," + m.costo);
bw.newLine();
}
} catch (IOException e) {
System.out.println("Error al guardar: " + e.getMessage());
}
}
// Método para cargar datos desde el archivo
public static ArrayList<Material> cargarDatos() {
ArrayList<Material> lista = new ArrayList<>();
File file = new File(ARCHIVO);
if (!file.exists()) return lista;
try (BufferedReader br = new BufferedReader(new FileReader(ARCHIVO))) {
String linea;
while ((linea = br.readLine()) != null) {
String[] datos = linea.split(",");
lista.add(new Material(datos[0], datos[1],
Integer.parseInt(datos[2]), Double.parseDouble(datos[3])));
}
} catch (IOException e) {
System.out.println("Error al cargar datos.");
}
return lista;
}
}
Sistema de impresión B/N Color www.gohead.ec
