From 8fa48296188603a89f8e41631c878539a869e8ea Mon Sep 17 00:00:00 2001 From: Dani Minguet Date: Sun, 9 Oct 2022 17:14:42 +0200 Subject: [PATCH] MiCopy --- .classpath | 10 ++ .project | 17 +++ .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 14 +++ README.md | 35 ++++++ bin/micopy/com/daniminguet/es/MiCopy.class | Bin 0 -> 3413 bytes bin/module-info.class | Bin 0 -> 182 bytes src/micopy/com/daniminguet/es/MiCopy.java | 118 +++++++++++++++++++++ src/module-info.java | 3 + 9 files changed, 199 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 README.md create mode 100644 bin/micopy/com/daniminguet/es/MiCopy.class create mode 100644 bin/module-info.class create mode 100644 src/micopy/com/daniminguet/es/MiCopy.java create mode 100644 src/module-info.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..57bca72 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..8f04705 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + MiCopy + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8c9943d --- /dev/null +++ b/.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/README.md b/README.md new file mode 100644 index 0000000..4b06d96 --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +HACE UNA COPIA DE UN ARCHIVO DE ORIGEN PASADO POR PANTALLA A UNO DE DESTINO PASADO POR PANTALLA TAMBIÉN + +He hecho las comprobaciones para ver si los archivos existen y en el caso del de donde se hace la copia, que +se pueda escribir en él si ya existe. + +A la hora de copiar he usado el método "Thread.sleep()" para hacer una breve pausa entre datos copiados y +mostrar así la barra de progreso de manera correcta. + +Una vez acabada la copia, se visualiza el contenido de ambos archivos para comprobar su correcto funcionamiento + +RESULTADO: + +``` +Introduce la ruta del archivo de origen: +C:\Users\Dani\OneDrive\Documentos\AccesoADatos\fichero.txt +Introduce la ruta del archivo de destino: +C:\Users\Dani\OneDrive\Documentos\AccesoADatos\ficheroCopia.txt +Copiando archivo... +(||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||) +Archivo copiado con éxito!! + +Contenido del archivo de origen: + +qwertyuiopasdfghjkl\zxcvbnm +aefffffafeafsceac +veacecavbndtyamyksrvfdad +rvaavracvbgnsfntabvZDBbvnerw + +Contenido del archivo de destino: + +qwertyuiopasdfghjkl\zxcvbnm +aefffffafeafsceac +veacecavbndtyamyksrvfdad +rvaavracvbgnsfntabvZDBbvnerw +``` \ No newline at end of file diff --git a/bin/micopy/com/daniminguet/es/MiCopy.class b/bin/micopy/com/daniminguet/es/MiCopy.class new file mode 100644 index 0000000000000000000000000000000000000000..a804438522d75bca22f0613f4d5b01d71604baf4 GIT binary patch literal 3413 zcma)8Yit}>75=WhyED7lxK8XOUSitaG;#e%yrC&cvrcFo$4xib>oj&9oYK(o?zKJ6 z?#wbf>o}pM1sYl???NCzpooW4UR5fzE?A;Sr~>5=;wS&BiXZ$yNEH&IHQ$}tmxWP@ zm7P2Hp8MT%&i9>j=k~k5`7MCsctt~tK)hgP?c(KR)-EJ-hGiB^YrZVqq%0-J%@M9> z2ne(<8cRkpZ&>rmiP=S&bp=AlOv`jXB+%O1H!Tntv2!wlR)nJnA|!Cfm}$vOxiBl8 zDPuM-1-6gbStCDfIHr29P6pfsvm~%*?7jRL;u!_Qv;=ncJ~r0yXVP`(@=)KjhHV1d zyoIuB=980I!?L6kMhA9i=-d#*+ln<$9jeheuej*;931Ij&*a|*DldFw>kt@y6f31Iw;3GJ%VP-=`Of4v&C?3N{8A>TH zWswEfds+p50Z(Z7n82N0M4rOPxOALy(UrN;<*Y2arfo%Gc!lq2a?&-j7pEK}OM0`c z{aP}VPiJ|ObRw9=kcK%HbZzlOd2UWRGFLN@SWwiP%zJ|{f03-{xXAuBV$&7N%&FSh zypAMT>6TXlDn?ZT>g-byNSx9^IVAokNKLppSk}X%n;a0g?6_AEtXwrN$+)z#Wyvx( z>Ls4F9fw`hh+s+O@=~*qCh7@f!VPDhmDRCHgQI%$gs|yuhp*G-F30ZJQI*7m*FXFg zpqg%jv}#+RL^hZTwAF?0)fGinH8|psKgDlJ!g6@np4J!L6hCQ4~MMPiUY7>~-F>j+->=)A3V*?&0e7 z;q^D3pS7*{?_XXvT|1GW6$?}VCn0GeuCAed=2dK8Mc3G?*uDL( z3K9bq+%vw0ftmfQIFLC|LGrp7SBr
  • ZKGjRm-z3dVxU01v3=2d`uQ8t$Jtu!>YF zw1(p|vEV8mNNKT9OnVIv#zGaGjA<35S8zfhjuCMMN7OLGp~5(G?*BvJo(d*A@#t$f zw}MD2q`)6v!>l?zm(tcCXJXna=2N?)f3{1c#0jV)g$#S93_Fi*6j`*Ue$vg<;A#jl1y( z_VT9KhdK11fP3K3>JmRQuAm>E#sOT#AihZTyvUt5_}Oq1_u>^C!mn^2eods;d8@y{ z^KK)BKjA_Ag~)I6j{X})@DH5C+tmC!I4N|T5^Z=`bRaFdc&YB@^_f6M^zbGez*%t^ zlVTWCB8^AI1g6DVoD=8yl)T**abDQG%^W-~uJHPL8c&F4+4q%bf5!+ZOf2Iv-?ni5 z3O+&Ec8LO>#8Z@cLgesCJk8u37Dw?6=K>fOgZLEZf{eYJaqeOv%rRr1!LzKE8}+%H z^|{-$y^7D$?rrFJjwm4!#G*f9)YtGlKF7Up;st!3|8+*@?+7!tqxb?>!;Da6^94j0 zgIfI(efcu|zJ|7SIv&#S6%FkgzN%rs{{$k-=Rx63Y&ED=V4Y-c zvR>a0p%C9ekH0}%X95Dvc))25OCdG^er+*_FVe>Vv%2K?bGKz9Y-QS;yDdnbOtdh4&?hcm}pURr-^1%ZrOTdD4Ona^8nQO3S}2R&jJ zm}ZkJ7fEoQ5-uRltG|cu2T`Q>N;n3W0xNsg{k}sUmGq3FQ&h5%^Y3T)IUU|l*Zq-7 YcpC!$Mu+$pZ&jv(3c@cq+k#*I2g>6@8UO$Q literal 0 HcmV?d00001 diff --git a/bin/module-info.class b/bin/module-info.class new file mode 100644 index 0000000000000000000000000000000000000000..91c3e22a539780f8a6932fbd856405162a56b19c GIT binary patch literal 182 zcmX^0Z`VEs1_oOO9(D#MMh5QO{FKt1RNc(Hw0uSeuHgLAqU2P!%$!t41_2}~y{yEt zL`DWSU$AOn26hlT(>cGOQka30k%1E=t(TNooGQY=&B!2`o0$xh(ofFM)lW&x%goKp vOD|0=(N8UIU|?Vb+71Cs49q|V69WqaE0C69U;_&?GH^727(my6`CtM78z&|7 literal 0 HcmV?d00001 diff --git a/src/micopy/com/daniminguet/es/MiCopy.java b/src/micopy/com/daniminguet/es/MiCopy.java new file mode 100644 index 0000000..bc99654 --- /dev/null +++ b/src/micopy/com/daniminguet/es/MiCopy.java @@ -0,0 +1,118 @@ +package micopy.com.daniminguet.es; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Scanner; + +public class MiCopy { + public static void main(String[] args) { + Scanner lector = new Scanner(System.in); + + //Se pide el archivo de origen + System.out.println("Introduce la ruta del archivo de origen:"); + String archivoOrigenString = lector.nextLine(); + + File archivoOrigen = new File(archivoOrigenString); + + try { + //Si el archivo de origen existe, se pedirá el archivo de destino + if(archivoOrigen.exists()) { + System.out.println("Introduce la ruta del archivo de destino:"); + String archivoDestinoString = lector.nextLine(); + + File archivoDestino = new File(archivoDestinoString); + + //Si el archivo de destino existe y tiene permisos para escribir, sobreescribirá los datos + if(archivoDestino.exists()) { + if(archivoDestino.canWrite()) { + InputStream isCopiar = new FileInputStream(archivoOrigen); + OutputStream osPegar = new FileOutputStream(archivoDestino); + copiar(isCopiar, osPegar); + isCopiar.close(); + osPegar.close(); + } else { + System.out.println("No tienes permisos para modificar el archivo de destino"); + } + //Si el archivo de destino no existe, lo crea y escribe los datos + } else { + System.out.println("Nuevo archivo creado"); + archivoDestino.createNewFile(); + InputStream isCopiar = new FileInputStream(archivoOrigen); + OutputStream osPegar = new FileOutputStream(archivoDestino); + copiar(isCopiar, osPegar); + isCopiar.close(); + osPegar.close(); + } + System.out.println(); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + String linea; + + //Mostrará el contenido de los dos archivos para verificar que funciona correctamente + FileReader frOrigen = new FileReader(archivoOrigen); + BufferedReader brOrigen = new BufferedReader(frOrigen); + System.out.println("Contenido del archivo de origen:"); + System.out.println(); + while((linea = brOrigen.readLine()) != null) { + System.out.println(linea); + } + System.out.println(); + frOrigen.close(); + brOrigen.close(); + + linea = null; + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + FileReader frDestino = new FileReader(archivoDestino); + BufferedReader brDestino = new BufferedReader(frDestino); + System.out.println("Contenido del archivo de destino:"); + System.out.println(); + while((linea = brDestino.readLine()) != null) { + System.out.println(linea); + } + frDestino.close(); + brDestino.close(); + //Si el archivo no existe, el programa finalizará + } else { + System.out.println("El archivo de origen no existe o no se encuentra la ruta correcta"); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void copiar(InputStream isCopiar, OutputStream osPegar) throws IOException { + int c; + + //Proceso de copia + System.out.println("Copiando archivo..."); + System.out.print("("); + try { + while((c = isCopiar.read()) != -1) { + osPegar.write(c); + System.out.print("|"); + Thread.sleep(40); + } + } catch (InterruptedException ie) { + + } + System.out.println(")"); + System.out.println("Archivo copiado con éxito!!"); + } +} \ No newline at end of file diff --git a/src/module-info.java b/src/module-info.java new file mode 100644 index 0000000..93cb425 --- /dev/null +++ b/src/module-info.java @@ -0,0 +1,3 @@ +module MiCopy { + exports micopy.com.daniminguet.es; +} \ No newline at end of file