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...