Tengo dos objetos Java.io.File file1 y file2. Quiero copiar el contenido del archivo1 al archivo2. ¿Hay una manera estándar de hacer esto sin tener que crear un método que lea el archivo1 y escriba en el archivo2Java IO para copiar un archivo en otro
Respuesta
No, no hay un método incorporado para hacerlo. El más cercano a lo que se quiere lograr es el método de transferFrom
FileOutputStream
, así:
FileChannel src = new FileInputStream(file1).getChannel();
FileChannel dest = new FileOutputStream(file2).getChannel();
dest.transferFrom(src, 0, src.size());
y no se olvide de manejar excepciones y cerca de todo en un bloque finally
.
Whoah. Tú me has enseñado. –
Una versión más completa (y correcta) de esta respuesta está disponible aquí: http://stackoverflow.com/questions/106770/standard-concise-way-to-copy-a-file-in-java/115086#115086. Gracias a http://stackoverflow.com/users/92937/twentymiles por enseñarnos a todos. – vkraemer
Respuesta completa y eficiente: https://gist.github.com/mrenouf/889747 –
No. Cada programador de Java desde hace mucho tiempo tiene su propio cinturón de herramientas que incluye dicho método. Aquí está el mío.
public static void copyFileToFile(final File src, final File dest) throws IOException
{
copyInputStreamToFile(new FileInputStream(src), dest);
dest.setLastModified(src.lastModified());
}
public static void copyInputStreamToFile(final InputStream in, final File dest)
throws IOException
{
copyInputStreamToOutputStream(in, new FileOutputStream(dest));
}
public static void copyInputStreamToOutputStream(final InputStream in,
final OutputStream out) throws IOException
{
try
{
try
{
final byte[] buffer = new byte[1024];
int n;
while ((n = in.read(buffer)) != -1)
out.write(buffer, 0, n);
}
finally
{
out.close();
}
}
finally
{
in.close();
}
}
Sin copyFileToInputStream? –
Esto fue un * extracto *. :) –
Si quieres ser perezoso y salirse con la escritura de código mínimo uso FileUtils.copyFile(src, dest)
de Apache IOCommons
¡Este es el camino a seguir! –
Soy un fanático del código mínimo. No estoy seguro de por qué es "flojo" usar un paquete de utilidad. Me encanta StringUtils. –
O utilice Files.copy(file1,file2) de la biblioteca de guayaba de Google.
Desde Java 7 puede usar Files.copy()
de la biblioteca estándar de Java.
Se puede crear un método de envoltura:
public static void copy(String sourcePath, String destinationPath) throws IOException {
Files.copy(Paths.get(sourcePath), new FileOutputStream(destinationPath));
}
que se puede utilizar de la siguiente manera:
copy("source.txt", "dest.txt");
En Java 7 puede utilizar Files.copy()
y muy importante es: Do no olvide cerrar el OutputStream después de crear el nuevo archivo.
OutputStream os = new FileOutputStream(targetFile);
Files.copy(Paths.get(sourceFile), os);
os.close();
- 1. Copiar objeto en otro
- 2. ¿Cómo copiar propiedades de un bean Java a otro?
- 3. IO asincrónico en Java?
- 4. ¿Cómo puedo usar la función splice() de Linux para copiar un archivo a otro archivo?
- 5. Copiar/Pegar parte de un archivo en otro archivo usando Terminal (o Shell)
- 6. Mejores prácticas para Java IO para crear un gran archivo CSV
- 7. Copiar de un registro a otro
- 8. ¿Cómo copiar un PNG desde otro PNG?
- 9. Archivo asíncrono IO en .Net
- 10. ¿Cómo copiar un archivo?
- 11. Cómo copiar de un lienzo a otro
- 12. Optimizar archivo C# IO
- 13. R: copiar/mover un entorno a otro
- 14. Ayudante para copiar propiedades no nulas de un objeto a otro? (Java)
- 15. Comando de Unix para copiar la última línea de archivo a otro archivo
- 16. ¿Cómo escribir en un archivo usando IO sin bloqueo?
- 17. Extender una clase Java de un archivo en otro archivo java
- 18. Obtener tamaño de archivo/directorio con Java 7 nuevo IO
- 19. Java - copiar objetos ArrayList
- 20. ¿Cómo puedo copiar un mapa en otro usando std :: copy?
- 21. Comandos de Linux para copiar un archivo en muchos archivos
- 22. Cómo copiar un archivo en C#
- 23. FTP copiar un archivo a otro lugar en el mismo FTP
- 24. Cómo copiar archivos en java
- 25. Copie el archivo de un servidor a otro
- 26. Hacer un directorio y copiar un archivo
- 27. En Java, ¿hay alguna manera de leer un archivo cuando ese archivo está bloqueado por otro hilo?
- 28. Io operadores, parece que no pueden crearlos en un archivo
- 29. Buscar una cadena en un archivo y escribir las líneas coincidentes a otro archivo en Java
- 30. ¿Puede Visual Studio 2010 copiar automáticamente un archivo compilado a otro directorio?
Ver http://stackoverflow.com/questions/106770/standard-concise-way-to-copy-a-file-in-java – TwentyMiles