BAEL-1308 - copy a file with java (Editor Notes)
This commit is contained in:
parent
8b2d647eec
commit
cf7c96b469
@ -1,40 +0,0 @@
|
|||||||
package com.baeldung.copyfiles;
|
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
|
||||||
import java.io.BufferedOutputStream;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.StandardCopyOption;
|
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
|
|
||||||
public class FileCopier {
|
|
||||||
public static File copyWithIO(File original, File copied) throws IOException {
|
|
||||||
try (InputStream in = new BufferedInputStream(new FileInputStream(original));
|
|
||||||
OutputStream out = new BufferedOutputStream(new FileOutputStream(copied))) {
|
|
||||||
byte[] buffer = new byte[1024];
|
|
||||||
int lengthRead;
|
|
||||||
while ((lengthRead = in.read(buffer)) > 0) {
|
|
||||||
out.write(buffer, 0, lengthRead);
|
|
||||||
out.flush();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return copied;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Path copyWithNio(Path original, Path copied) throws IOException {
|
|
||||||
Files.copy(original, copied, StandardCopyOption.REPLACE_EXISTING);
|
|
||||||
return copied;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static File copyWithCommonsIO(File original, File copied) throws IOException {
|
|
||||||
FileUtils.copyFile(original, copied);
|
|
||||||
return copied;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,48 +1,70 @@
|
|||||||
package com.baeldung.copyfiles;
|
package com.baeldung.copyfiles;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
|
import java.nio.file.StandardCopyOption;
|
||||||
|
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import static org.assertj.core.api.Assertions.*;
|
||||||
|
|
||||||
public class FileCopierTest {
|
public class FileCopierTest {
|
||||||
File original =new File("src/test/resources/original.txt");
|
File original = new File("src/test/resources/original.txt");
|
||||||
@Before
|
|
||||||
public void init() throws IOException{
|
|
||||||
if(!original.exists())
|
|
||||||
Files.createFile(original.toPath());
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
public void givenIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException {
|
|
||||||
File copied = new File("src/test/resources/copiedWithIo.txt");
|
|
||||||
copied = FileCopier.copyWithIO(original, copied);
|
|
||||||
assertTrue(copied.exists());
|
|
||||||
assertTrue(Files.readAllLines(original.toPath())
|
|
||||||
.equals(Files.readAllLines(copied.toPath())));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Before
|
||||||
public void givenCommonsIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException {
|
public void init() throws IOException {
|
||||||
File copied = new File("src/test/resources/copiedWithApacheCommons.txt");
|
if (!original.exists())
|
||||||
copied = FileCopier.copyWithCommonsIO(original, copied);
|
Files.createFile(original.toPath());
|
||||||
assertTrue(copied.exists());
|
}
|
||||||
assertTrue(Files.readAllLines(original.toPath())
|
|
||||||
.equals(Files.readAllLines(copied.toPath())));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenNIO2_whenCopied_thenCopyExistsWithSameContents() throws IOException {
|
public void givenIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException {
|
||||||
Path copied = Paths.get("src/test/resources/copiedWithNio.txt");
|
File copied = new File("src/test/resources/copiedWithIo.txt");
|
||||||
Path originalPath = original.toPath();
|
try (InputStream in = new BufferedInputStream(new FileInputStream(original));
|
||||||
copied = FileCopier.copyWithNio(originalPath, copied);
|
OutputStream out = new BufferedOutputStream(new FileOutputStream(copied))) {
|
||||||
assertTrue(Files.exists(copied));
|
byte[] buffer = new byte[1024];
|
||||||
assertTrue(Files.readAllLines(originalPath)
|
int lengthRead;
|
||||||
.equals(Files.readAllLines(copied)));
|
while ((lengthRead = in.read(buffer)) > 0) {
|
||||||
}
|
out.write(buffer, 0, lengthRead);
|
||||||
|
out.flush();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assertThat(copied).exists();
|
||||||
|
assertThat(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath())));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenCommonsIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException {
|
||||||
|
File copied = new File("src/test/resources/copiedWithApacheCommons.txt");
|
||||||
|
FileUtils.copyFile(original, copied);
|
||||||
|
assertThat(copied).exists();
|
||||||
|
assertThat(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath())));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenNIO2_whenCopied_thenCopyExistsWithSameContents() throws IOException {
|
||||||
|
Path copied = Paths.get("src/test/resources/copiedWithNio.txt");
|
||||||
|
Path originalPath = original.toPath();
|
||||||
|
Files.copy(originalPath, copied, StandardCopyOption.REPLACE_EXISTING);
|
||||||
|
assertThat(copied).exists();
|
||||||
|
assertThat(Files.readAllLines(originalPath).equals(Files.readAllLines(copied)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenGuava_whenCopied_thenCopyExistsWithSameContents() throws IOException {
|
||||||
|
File copied = new File("src/test/resources/copiedWithApacheCommons.txt");
|
||||||
|
com.google.common.io.Files.copy(original, copied);
|
||||||
|
assertThat(copied).exists();
|
||||||
|
assertThat(Files.readAllLines(original.toPath()).equals(Files.readAllLines(copied.toPath())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user