public class CopyFileTest extends BaseTest {
@Test
public void testCopyFile(){
// 字节拷贝 FileInputStream、FileOutputStream
InputStream in = null;
OutputStream outputStream = null;
try {
// 传入文件路径
File file = new File("/Users/a499827593/Desktop/a.txt");
File out = new File("/Users/a499827593/Desktop/b.txt");
outputStream = new FileOutputStream(out);
in = new FileInputStream(file);
int read;
byte[] bytes = new byte[1024];
while((read=in.read(bytes)) != -1){
outputStream.write(bytes,0,bytes.length);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
outputStream.flush();
outputStream.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Test
public void testCopyFileChannel(){
// 零拷贝 FileChannel
FileChannel in = null;
FileChannel out = null;
try {
File file = new File("/Users/a499827593/Desktop/c.txt");
file.createNewFile();
in = new FileInputStream(new File("/Users/a499827593/Desktop/a.txt")).getChannel();
out = new FileOutputStream(file).getChannel();
out.transferFrom(in,0,in.size());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Test
public void testCopyFileUtils(){
// 使用 Commons IO 拷贝 --> FileUtils.copyFile(File srcFile, File destFile)
try {
File in = new File("/Users/a499827593/Desktop/a.txt");
File out = new File("/Users/a499827593/Desktop/d.txt");
FileUtils.copyFile(in,out);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testCopyFiles(){
// 使用 Files 拷贝 --> Files.copy(Path source, Path target)
try {
File in = new File("/Users/a499827593/Desktop/a.txt");
File out = new File("/Users/a499827593/Desktop/d.txt");
Files.copy(in.toPath(),out.toPath());
} catch (Exception e) {
e.printStackTrace();
}
}
}
文件拷贝
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 项目中很多地方用到了文件IO操作,最好对这些常用的操作进行统一封装,而非让文件IO代码散落在项目各模块代码中。 创...
- 记得还是VPS小白的时候,只懂得怎么按照教程一步步建立ss。后来发现用VPS进行torrent下载很快,不用一直占...
- scp,用于在Linux下进行远程拷贝文件的命令 文件从本地到服务器 scp -P 3333(端口号) 文件名r...