【简介】文件移动三种方法
【简介】文件移动三种方法:
1. File类中的renameTo方法移动文件,将源文件重新命名为另一个抽象路径名时能起到移动文件的目的.
Jdk 1.5 File#renameTo 写道 renameTopublic boolean renameTo(File dest)重新命名此抽象路径名表示的文件。
此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从一个文件系统移动到另一个文件系统,该操作可能不是原子的,如果已经存在具有目标抽象路径名的文件,则该操作可能无法获得成功。应该始终检查返回值,确保重命名操作成功。
参数:
dest - 指定文件的新抽象路径名
返回:
当且仅当重命名成功时,返回 true;否则返回 false
抛出:
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对原来的和新的路径名进行写入访问
NullPointerException - 如果参数 dest 为 null
2. Runtime.getRuntime()获取与当前 Java 应用程序相关的 Runtime 对象,通过调用
public Process exec(String command)
执行dos命令移动文件.参数: cmd /c move 文件绝对路径1 文件绝对路径2
其中, /c 参数表示: 执行字符串指定的命令然后终断.
/k 参数表示: 执行字符串指定的命令然后保留.
缺少参数 /c 或 /k 都不能执行doc移动文件命令.
3. 通过文件输入输出字节流拷贝源文件到目的文件夹,后通过File类delete()方法删除源文件.
只是简单介绍能达成目的这三种方法,实现程序并没有做很好的容错处理.一些细节并没有考虑上去.
测试程序前提条件:
1. c盘根目录存在src文件夹.
2. c盘根目录存在dest文件夹.
3. 上述src文件夹下存在text.txt文件.
实现程序:
/*** Copyright (c) 2011 Trusted Software and Mobile Computing(TSMC)* All rights reserved.* Author: Jarg Yee * http://jarg.iteye.com/*/
import static java.lang.System.out;
import java.io.*;
/** 文件移动三种方法 简介*/
public class MoveFile
{private static final String srcPath = "C:\\src\\"; // 源目录private static final String destPath = "C:\\dest\\"; // 目的目录private static final String fileName = "text.txt"; // 文件名private static final File srcFile = new File(srcPath + fileName); // 源文件private static final File destFile = new File(destPath + fileName); // 目的文件/** for debugging. */public static void main(String[] args){//renameToMethod(); // 通过File类中的renameTo方法移动文件dosMethod(); // 通过执行dos命令移动文件//fileHandle(); // 通过字节流方式复制文件,后删除文件}/** 通过renameTo移动文件 */public static void renameToMethod(){if(srcFile.renameTo(destFile))out.println("success move(renameToMethod):" + fileName);elseout.println("fail move(renameToMethod):" + fileName);}/** 使用dos命令移动文件 */public static void dosMethod(){/** 返回与当前 Java 应用程序相关的运行时对象 */Runtime rt = Runtime.getRuntime();/** 文件移动命令 */String command = "cmd /c move " + srcFile + " " + destFile;/** 执行文件移动命令 */try{Process process = rt.exec(command);}catch (Exception e){out.println("error:" + e);}}/** 通过对文件复制与删除操作完成 由于,文件可能是流文件,应当用字节流方法复制*/public static void fileHandle(){FileInputStream in = null;FileOutputStream out = null;byte[] buf = new byte[256];int byteNum = 0; // 读取的字节数try{in = new FileInputStream(srcFile); // 文件输入out = new FileOutputStream(destFile); // 文件输出}catch (FileNotFoundException e){System.out.println("error:" + e);}try{/**read(buf): 一次最多读取buf.length长度的数据返回实际读取字节数*/while((byteNum=in.read(buf))!=-1){// 文件字节流读到最后不一定够256个字节out.write(buf,0,byteNum); }in.close();out.close(); // 关闭文件输入,输出System.out.println(srcFile.delete()); // 删除源文件}catch (IOException e){System.out.println("error2:" + e);}}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
