post icon

Copiar ficheros y Directorios con Java

Trabajar con los ficheros del disco en Java es muy sencillo realmente, y como saben ya al ser multiplataforma un único código funcionará para cualquier sistema operativo que estemos usando.

Con el código que veremos podremos copiar los ficheros o archivos que querramos incluso, directorios completos, véanlo son muy pocas líneas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.io.*;
 
public static void CopiarDirectorio(File dirOrigen, File dirDestino) throws Exception { 
	try {
		if (dirOrigen.isDirectory()) { 
			if (!dirDestino.exists())
				dirDestino.mkdir(); 
 
			String[] hijos = dirOrigen.list(); 
			for (int i=0; i < hijos.length; i++) { 
				CopiarDirectorio(new File(dirOrigen, hijos[i]), 
					new File(dirDestino, hijos[i])); 
			} // end for
		} else { 
			Copiar(dirOrigen, dirDestino); 
		} // end if
	} catch (Exception e) {
		throw e;
	} // end try
} // end CopiarDirectorio
 
public static void Copiar(File dirOrigen, File dirDestino) throws Exception { 
 
	InputStream in = new FileInputStream(dirOrigen); 
	OutputStream out = new FileOutputStream(dirDestino); 
 
	byte[] buffer = new byte[1024];
	int len;
 
	try {
		// recorrer el array de bytes y recomponerlo
		while ((len = in.read(buffer)) > 0) { 
			out.write(buffer, 0, len); 
		} // end while
		out.flush();
	} catch (Exception e) {
		throw e;
	} finally {
		in.close(); 
		out.close(); 
	} // end ty
} // end Copiar
 
public static void Copiar(String dirOrigen, String dirDestino) throws Exception { 
	InputStream in = new FileInputStream(dirOrigen); 
	OutputStream out = new FileOutputStream(dirDestino); 
 
	byte[] buffer = new byte[1024];
	int len;
 
	try {
		// recorrer el array de bytes y recomponerlo
		while ((len = in.read(buffer)) > 0) { 
			out.write(buffer, 0, len); 
		} // end while
		out.flush();
	} catch (Exception e) {
		throw e;
	} finally {
		in.close(); 
		out.close(); 
	} // end ty
} // end Copiar

Comentarios desde Facebook:

  1. avatar
    Julio CUBA Mozilla Firefox Windows
    9 abril 2011 at 12:38 #

    Hola, estoy haciendo dos aplicaciones(una Cliente y la otra servidor). Y necesito almacenar documetos en el servidor. los documentos me los provee el cliente, pero no se como copiarlos o transferirlos hacia el servidor. provee el codigo que pones pero me sirve cuando el cliente y el servidor estan en la misma PC. Necesito si pueden que me ayuden en esto.
    Saludos y gracias de antemano

  2. avatar
    migueljimenez COLOMBIA Mozilla Firefox Windows
    28 octubre 2010 at 12:40 #

    Muy valioso el aporte, de verdad son muy pocas lineas de codigo 🙂

Responder