Skip to content

Commit 4bddd27

Browse files
authored
Merge pull request mouredev#4498 from AndrewCodev/#11-Java
#11 - Java
2 parents 352d5ac + 3ac2cbe commit 4bddd27

File tree

1 file changed

+272
-0
lines changed

1 file changed

+272
-0
lines changed
Lines changed: 272 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
import java.io.*;
2+
import java.nio.file.*;
3+
import java.util.*;
4+
import java.util.Scanner;
5+
6+
public class AndrewCodev {
7+
public static void main(String[] args) {
8+
//Los ejercicios estan separados para seleccionar entre uno y otro comentar y descomentar cada uno.
9+
//ejemploManejoArchivos();
10+
gestionVentas();
11+
}
12+
13+
// DIFICULTAD EXTRA
14+
public static void gestionVentas() {
15+
String nombreArchivo = "GestionVentas.txt";
16+
Scanner scanner = new Scanner(System.in);
17+
List<String> contenidoArchivo;
18+
try {
19+
crearArchivo(nombreArchivo);
20+
21+
contenidoArchivo = new ArrayList<>(Files.readAllLines(Paths.get(nombreArchivo)));
22+
23+
System.out.println("\nGESTOR DE VENTAS\n");
24+
System.out.println("1 AGREGAR PRODUCTO");
25+
System.out.println("2 LEER EL ARCHIVO");
26+
System.out.println("3 MODIFICAR PRODUCTO");
27+
System.out.println("4 CALCULAR TOTAL DE PRECIOS");
28+
System.out.println("5 ELIMINAR PRODRUCTO");
29+
System.out.println("6 CERRAR APLICACIÓN");
30+
31+
String opcionMenu = recibirScanner(scanner);
32+
33+
switch (opcionMenu) {
34+
case "1": {
35+
String detalleProducto = lineaArchivo(scanner, contenidoArchivo, nombreArchivo,
36+
contenidoArchivo.size());
37+
anexarArchivo(nombreArchivo, detalleProducto);
38+
gestionVentas();
39+
break;
40+
}
41+
case "2": {
42+
System.out.println("\nDETALLE DE VENTAS\n");
43+
leerArchivo(nombreArchivo);
44+
// REVISAR SUBMENU
45+
gestionVentas();
46+
break;
47+
}
48+
case "3": {
49+
// Pasamos las filas al una lista para modificar
50+
try {
51+
52+
leerArchivo(nombreArchivo);
53+
54+
if (contenidoArchivo.size() > 1) {
55+
System.out.println(
56+
"Escribe un número del 0 al " + (contenidoArchivo.size() - 1) + " la fila a Modificar");
57+
} else if (contenidoArchivo.size() == 1) {
58+
System.out.println(
59+
"Escribe un número: " + (contenidoArchivo.size() - 1) + " para modificar la linea");
60+
} else {
61+
System.out.println("El archivo no tiene productos");
62+
}
63+
64+
65+
int idEditado = Integer.parseInt(recibirScanner(scanner));
66+
67+
String detalleProducto = lineaArchivo(scanner, contenidoArchivo, nombreArchivo,
68+
idEditado);
69+
leerArchivo(nombreArchivo);
70+
71+
contenidoArchivo.set((idEditado), detalleProducto);
72+
73+
Files.write(Paths.get(nombreArchivo), contenidoArchivo);
74+
gestionVentas();
75+
} catch (IOException e) {
76+
e.printStackTrace();
77+
}
78+
break;
79+
}
80+
case "4": {
81+
double sumTotalPrecios = 0;
82+
String inputString = "";
83+
for (int i = 0; i < contenidoArchivo.size(); i++) {
84+
inputString = contenidoArchivo.get(i).replace("[", "").replace("]", "");
85+
86+
String array[] = inputString.split(",");
87+
sumTotalPrecios = sumTotalPrecios + Double.parseDouble(array[4]);
88+
}
89+
leerArchivo(nombreArchivo);
90+
System.out.println("PRECIO TOTAL: " + sumTotalPrecios);
91+
gestionVentas();
92+
break;
93+
}
94+
case "5": {
95+
try {
96+
leerArchivo(nombreArchivo);
97+
if (contenidoArchivo.size() > 1) {
98+
System.out.println(
99+
"Escribe un número del 0 al " + (contenidoArchivo.size() - 1) + " la fila a eliminar");
100+
} else if (contenidoArchivo.size() == 1) {
101+
System.out.println(
102+
"Escribe un número: " + (contenidoArchivo.size() - 1) + " para eliminar la linea");
103+
} else {
104+
System.out.println("El archivo no tiene productos");
105+
}
106+
107+
int idELiminado = Integer.parseInt(recibirScanner(scanner));
108+
109+
if (idELiminado >= 0 && idELiminado < contenidoArchivo.size()) {
110+
// Eliminar la línea específica
111+
contenidoArchivo.remove(idELiminado);
112+
113+
// Escribir el contenido modificado de nuevo en el archivo
114+
Files.write(Paths.get(nombreArchivo), contenidoArchivo);
115+
System.out.println("La línea ha sido eliminada exitosamente.");
116+
} else {
117+
System.out.println("Número de línea fuera de rango.");
118+
}
119+
120+
gestionVentas();
121+
} catch (IOException e) {
122+
e.printStackTrace();
123+
}
124+
break;
125+
}
126+
case "6": {
127+
eliminarArchivo(nombreArchivo);
128+
break;
129+
}
130+
default:
131+
System.err.println("La opción no es valida, intentelo de nuevo");
132+
gestionVentas();
133+
}
134+
} catch (IOException e) {
135+
e.printStackTrace();
136+
}
137+
138+
}
139+
140+
public static String recibirScanner(Scanner scanner) {
141+
String dato = scanner.nextLine();
142+
return dato;
143+
}
144+
145+
public static String lineaArchivo(Scanner scanner, List<String> contenidoArchivo, String nombreArchivo,
146+
int idProducto) {
147+
String lineaArchivo = "";
148+
try {
149+
String nombreproducto;
150+
int cantidad;
151+
double precio;
152+
double totalPrecio;
153+
//int idProducto = 0;
154+
155+
//idProducto = contenidoArchivo.size();
156+
System.out.println("Ingresa el nombre del producto");
157+
nombreproducto = recibirScanner(scanner);
158+
System.out.println("Ingresa la cantidad");
159+
cantidad = Integer.parseInt(recibirScanner(scanner));
160+
System.out.println("Ingresa el precio unidad");
161+
precio = Integer.parseInt(recibirScanner(scanner));
162+
totalPrecio = precio * cantidad;
163+
lineaArchivo = "[" + idProducto + "]," +"[" + nombreproducto + "],[" + cantidad + "],[" + precio + "],[" + totalPrecio + "]";
164+
165+
return lineaArchivo;
166+
} catch (Exception e) {
167+
System.err.println("La opción no es valida está debe escribir la opción númerica");
168+
}
169+
return lineaArchivo;
170+
}
171+
172+
public static void ejemploManejoArchivos() {
173+
String nombreArchivo = "AndrewCodev.txt";
174+
175+
crearArchivo(nombreArchivo);
176+
177+
anexarArchivo(nombreArchivo, "Nombre: AndrewCodev");
178+
anexarArchivo(nombreArchivo, "Edad: 30");
179+
anexarArchivo(nombreArchivo, "Lenguaje: Java");
180+
181+
leerArchivo(nombreArchivo);
182+
eliminarArchivo(nombreArchivo);
183+
}
184+
185+
// CREAMOS EL ARCHIVO
186+
public static void crearArchivo(String nombreArchivo) {
187+
File archivo = new File(nombreArchivo);
188+
189+
try {
190+
if (!archivo.exists()) {
191+
PrintWriter salida = new PrintWriter(archivo);
192+
salida.close();
193+
System.out.println("Se ha creado el archivo: " + nombreArchivo);
194+
}
195+
} catch (FileNotFoundException e) {
196+
e.printStackTrace();
197+
}
198+
}
199+
200+
// ESCRIBIR ARCHIVO
201+
public static void escribirArchivo(String nombreArchivo, String contenido) {
202+
File archivo = new File(nombreArchivo);
203+
204+
try {
205+
PrintWriter salida = new PrintWriter(archivo);
206+
salida.println(contenido);
207+
salida.close();
208+
System.out.println("Se ha escrito en el archivo: " + nombreArchivo);
209+
} catch (FileNotFoundException e) {
210+
e.printStackTrace();
211+
}
212+
}
213+
214+
// ANEXAR INFORMACIÓN
215+
public static void anexarArchivo(String nombreArchivo, String contenido) {
216+
File archivo = new File(nombreArchivo);
217+
218+
try {
219+
PrintWriter salida = new PrintWriter(new FileWriter(archivo, true));
220+
salida.println(contenido);
221+
salida.close();
222+
System.out.println("Se ha anexado información en el archivo: " + nombreArchivo);
223+
} catch (FileNotFoundException e) {
224+
e.printStackTrace();
225+
} catch (IOException e) {
226+
e.printStackTrace();
227+
}
228+
}
229+
230+
// LEER ARCHIVO
231+
public static void leerArchivo(String nombreArchivo) {
232+
File archivo = new File(nombreArchivo);
233+
BufferedReader entrada = null;
234+
try {
235+
entrada = new BufferedReader(new FileReader(archivo));
236+
String lectura = entrada.readLine();
237+
238+
while (lectura != null) {
239+
System.out.println(lectura);
240+
lectura = entrada.readLine();
241+
}
242+
//entrada.close();
243+
244+
} catch (FileNotFoundException e) {
245+
e.printStackTrace();
246+
} catch (IOException e) {
247+
e.printStackTrace();
248+
} finally {
249+
// Cerrar el BufferedReader
250+
if (entrada != null) {
251+
try {
252+
entrada.close();
253+
} catch (IOException e) {
254+
e.printStackTrace();
255+
}
256+
}
257+
}
258+
}
259+
260+
public static void eliminarArchivo(String nombreArchivo) {
261+
File archivo = new File(nombreArchivo);
262+
263+
Path ruta = Path.of(archivo.getPath());
264+
265+
try {
266+
Files.delete(ruta);
267+
} catch (IOException e) {
268+
e.printStackTrace();
269+
}
270+
System.out.println("Archivo eliminado: " + nombreArchivo);
271+
}
272+
}

0 commit comments

Comments
 (0)