你观察的很仔细,确实是这样,下面是我实验代码:- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- public class Test10 {
- /**
- * 实现复制和重命名文件,不关闭复制时候的fileintputstream和
- * fileoutputstream流情况下,运行程序的时候复制成功了却不能重命名,求解!!!
- * (重命名没有用到这俩个流啊)D:\QQ截图20121125170636.png
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- File source = new File("E:\\黑马程序员javaEE-Android学习路线图(请使用IE打开).mht");
- File dest = new File("E:\\test\\黑马程序员javaEE-Android学习路线图(请使用IE打开).mht");
- //拷贝
- copy(source, dest);
- //重命名
- File source1 = new File("E:\\demo\\黑马程序员javaEE-Android学习路线图(请使用IE打开).mht");
- System.out.println(renameTo(dest, source1));
- }
- public static boolean renameTo(File file,File dest) {
- return file.renameTo(dest);
- }
- public static void copy(File source,File dest) {
- BufferedInputStream inputfile = null;
- BufferedOutputStream outputfile = null;
- try {
- inputfile = new BufferedInputStream(new FileInputStream(source));
- outputfile = new BufferedOutputStream(new FileOutputStream(dest));
- byte[] buffer = new byte[1024];
- int length = 0;
- while((length = inputfile.read(buffer))!=-1){
- outputfile.write(buffer, 0, length);
- }
- //关闭输入、输出流
- inputfile.close();
- outputfile.close();
- } catch (Exception e) {
- // TODO: handle exception
- }
- }
- }
复制代码 其实这个也不难理解:
renameTo有剪切的功能,你认为一个正在被操作的文件可以被剪切吗?!
|