@ -0,0 +1,10 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<classpath> | |||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"> | |||||
<attributes> | |||||
<attribute name="module" value="true"/> | |||||
</attributes> | |||||
</classpathentry> | |||||
<classpathentry kind="src" path="src"/> | |||||
<classpathentry kind="output" path="bin"/> | |||||
</classpath> |
@ -0,0 +1,17 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<projectDescription> | |||||
<name>MiCopyFicheros</name> | |||||
<comment></comment> | |||||
<projects> | |||||
</projects> | |||||
<buildSpec> | |||||
<buildCommand> | |||||
<name>org.eclipse.jdt.core.javabuilder</name> | |||||
<arguments> | |||||
</arguments> | |||||
</buildCommand> | |||||
</buildSpec> | |||||
<natures> | |||||
<nature>org.eclipse.jdt.core.javanature</nature> | |||||
</natures> | |||||
</projectDescription> |
@ -0,0 +1,2 @@ | |||||
eclipse.preferences.version=1 | |||||
encoding/<project>=UTF-8 |
@ -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 |
@ -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. | |||||
<pre> | |||||
<code> | |||||
> Empezando copia ... | |||||
[■■■■■■■■■■] 100% | |||||
+ Se ha finalizado la copia correctamente | |||||
</code> | |||||
</pre> | |||||
## Dependencias | |||||
Uso de librerias externas: | |||||
* java.io.* | |||||
## Licencia | |||||
Uso libre |
@ -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; | |||||
} | |||||
} |