commit 6b8b3fdfe4d4e76ec392b606e0e7eb22f599692e Author: jandroalbus Date: Thu Oct 6 13:37:20 2022 +0200 Commit inicial diff --git a/MiCopyFicheros/.classpath b/MiCopyFicheros/.classpath new file mode 100644 index 0000000..57bca72 --- /dev/null +++ b/MiCopyFicheros/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/MiCopyFicheros/.project b/MiCopyFicheros/.project new file mode 100644 index 0000000..177fb2f --- /dev/null +++ b/MiCopyFicheros/.project @@ -0,0 +1,17 @@ + + + MiCopyFicheros + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/MiCopyFicheros/.settings/org.eclipse.core.resources.prefs b/MiCopyFicheros/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/MiCopyFicheros/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/MiCopyFicheros/.settings/org.eclipse.jdt.core.prefs b/MiCopyFicheros/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8c9943d --- /dev/null +++ b/MiCopyFicheros/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/MiCopyFicheros/README.md b/MiCopyFicheros/README.md new file mode 100644 index 0000000..1fba4e5 --- /dev/null +++ b/MiCopyFicheros/README.md @@ -0,0 +1,36 @@ +# README.md + +## Titulo +MyCopy Ficheros + +## Autor +Alejandro Javier Albus 2CFGS DAM + +## Enunciado +ACTIVIDAD 06 : Crea un programa Java MiCopy que copie un archivo. +Por ejemplo “MiCopy FicheroOrigen.dat FicheroDestino.dat. El programa tendrá que mostrar por pantalla el tanto +por cien que lleva realizada de la copia y deberá también mostrar algún tipo de animación (similar a wget). +Cuando termine la copia se mostrará un mensaje de fin de la copia. + +## Uso +Debe introducir en los atributos del programa el archivo a copiar (IN) y el destino de dicho archivo (OUT). +Dicho archivo se copiará integramente. + +## Ejemplo de ejecución + +Los cuadrados iran apareciendo desde 0. + +
+
+> Empezando copia ...
+[■■■■■■■■■■] 100%
++ Se ha finalizado la copia correctamente
+
+
+ +## Dependencias +Uso de librerias externas: +* java.io.* + +## Licencia +Uso libre \ No newline at end of file diff --git a/MiCopyFicheros/bin/MiCopyFicheros/MiCopyFicheros.class b/MiCopyFicheros/bin/MiCopyFicheros/MiCopyFicheros.class new file mode 100644 index 0000000..efb0bdf Binary files /dev/null and b/MiCopyFicheros/bin/MiCopyFicheros/MiCopyFicheros.class differ diff --git a/MiCopyFicheros/src/MiCopyFicheros/MiCopyFicheros.java b/MiCopyFicheros/src/MiCopyFicheros/MiCopyFicheros.java new file mode 100644 index 0000000..c6681a5 --- /dev/null +++ b/MiCopyFicheros/src/MiCopyFicheros/MiCopyFicheros.java @@ -0,0 +1,76 @@ +package MiCopyFicheros; + +import java.io.*; + +public class MiCopyFicheros { + + public static void main(String[] args) throws IOException { + + //Tenemos los directorios y ficheros a copiar (origen) + final String directory = "C:\\Users\\jandr\\Desktop\\Acceso a datos\\Container Ficheros\\"; + File f = new File(directory + "Fich_Origen_0410.bin"); + + //Creamos los FIS y tambien decimos a donde mandar el nuevo archivo + FileInputStream in = new FileInputStream(f); + FileOutputStream out = new FileOutputStream(directory + "Fich_Destino_0410"); + + //Empezamos la copia, si no esta vacio - null + if (in != null) { + + System.out.println("\n> Empezando copia ..."); + + for (int i = 0; i <= 200; i = i + 20) { + + //Invocamos al metodo + progressPercentage(i, 200); + + //Ralentizamos el output + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + } + + System.out.println("\n+ Se ha finalizado la copia correctamente"); + + } + + //Cerramos los lectores + in.close(); + out.close(); + + } + + /** + * Muestra el porcentaje del progreso [0/100%] + */ + private static void progressPercentage(int remain, int total) { + + //Si lo restante supera al total, lanzaremos excepcion + if (remain > total) + throw new IllegalArgumentException(); + + //Generamos los atributos in-class + int maxSize = 10, remaining = calcProgress(remain, total, maxSize); + char notDone = '-'; + String done = "■", bare = new String(new char[maxSize]).replace('\0', notDone) + "]", bareDone = "[", + bareRemain = bare.substring(remaining, bare.length());; + + for (int i = 0; i < remaining; i++) + bareDone += done; + + //Imprimimos el resultado + System.out.print("\r" + bareDone + bareRemain + " " + remaining * 10 + "%"); + + } + + /** + * Calculo del progreso + */ + private static int calcProgress(int remain, int total, int maxBareSize) { + return ((100 * remain) / total) / maxBareSize; + } + +}