JAVA文件拷贝的几种方式
public static void singleByteReadWrite(File sorceFile, File targetFile) {
try (FileInputStream fis = new FileInputStream(sorceFile)
; FileOutputStream fos = new FileOutputStream(targetFile)) {
int len;
while ((len = fis.read()) != -1) {
fos.write(len);
}
} catch (Exception e) {
}
}
public static void byteArrayReadWrite(File sorceFile, File targetFile) {
try (FileInputStream fis = new FileInputStream(sorceFile)
; FileOutputStream fos = new FileOutputStream(targetFile)) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (Exception e) {
}
}
public static void bufferReadWrite(File sorceFile, File targetFile) {
try (BufferedInputStream bis =
new BufferedInputStream(new FileInputStream(sorceFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(targetFile))) {
byte[] buffer = new byte[1024];
int len;
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
} catch (Exception e) {
}
}
public static void transferReadWrite(File sorceFile, File targetFile) {
try (FileInputStream fis = new FileInputStream(sorceFile)
; FileOutputStream fos = new FileOutputStream(targetFile)) {
fis.transferTo(fos);
} catch (Exception e) {
}
}
public static void transferReadWrite2(File sorceFile, File targetFile) {
try (FileInputStream fis = new FileInputStream(sorceFile);
FileOutputStream fos = new FileOutputStream(targetFile)) {
FileChannel inChannel = fis.getChannel();
FileChannel outChannel = fos.getChannel();
outChannel.transferFrom(inChannel, 0, inChannel.size());
} catch (Exception e) {
}
}
public static void copyFile(File sorceFile, File targetFile) {
try {
Files.copy(sorceFile.toPath(), targetFile.toPath());
} catch (Exception e) {
}
}