@ -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; | |||
} | |||
} |