`
yeshaoting
  • 浏览: 686260 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【简介】文件移动三种方法

    博客分类:
  • J2SE
阅读更多

【简介】文件移动三种方法:

1. File类中的renameTo方法移动文件,将源文件重新命名为另一个抽象路径名时能起到移动文件的目的.

Jdk 1.5 File#renameTo 写道
renameTo

public 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 <yeshaoting@gmail.com>
 * 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);
		else
			out.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);
		}
		
	}

}

 

 

 

0
0
分享到:
评论

相关推荐

    影像图TIFF和TFW文件在autocad中校准坐标的方法

    3. **移动影像至正确位置**:使用“移动”命令将影像移动到正确的地理位置,确保左上角坐标与TFW文件中的坐标一致。 #### 四、案例分析 假设我们有一张像素尺寸为11370×2647的TIFF图像,并且其伴随的TFW文件内容...

    Windows10中长路径文件无法删除解决方法

    ### Windows10中长路径文件无法删除解决方法 #### 一、问题背景及原因分析 在Windows10操作系统中,用户经常会遇到一个令人头疼的问题:当试图删除某个文件或文件夹时,系统会提示“该文件夹包含名称过长且无法放...

    精彩编程与编程技巧-移动文件到回收站...

    在Windows系统中,将文件移动到回收站实际上是一个特殊类型的删除操作。这种操作不会直接从磁盘上删除文件,而是将其移到一个特定的位置——回收站,这样用户可以在以后选择恢复这些文件。 #### 2.1 使用FO_DELETE ...

    移动磁盘加密的方法.docx

    - **定义**:BitLocker是一种由微软开发的数据加密技术,用于Windows操作系统下的文件系统加密,包括本地硬盘和可移动存储设备。 - **工作原理**:BitLocker通过使用强大的加密算法来加密整个磁盘卷,包括系统分区和...

    c__读写文件.doc

    ### C++ 文件操作详解 ...本文介绍了C++中文件操作的基础知识,包括文件流的种类、文件的打开与关闭方式、基本读写操作以及二进制文件的处理方法。掌握这些基础知识对于开发基于文件处理的应用程序至关重要。

    stl文件怎么打开

    STL(Stereolithography)文件是一种常见的三维模型数据格式,主要用于快速成型技术中。这种格式通过将复杂的三维模型分解成许多小三角形面片来表示,非常适合3D打印、CAD/CAM系统等应用领域。 #### 二、打开STL...

    aglet学习资料,移动agent

    Aglet是一种基于Java的移动Agent平台,用于创建能够在网络中自主迁移、执行任务并与其他Agent交互的应用程序。在本文中,我们将深入探讨Aglet的基本概念、安装步骤、配置方法以及如何进行移动Agent的开发。 一、...

    破解器dex反编译文件

    与Java的class文件不同,DEX文件是为了适应移动设备上内存和处理器限制而设计的一种优化格式。它主要用于Android应用程序的执行,支持多线程并发执行。 #### 1.2 DEX文件结构 一个典型的DEX文件包括: - **头文件**...

    电信设备-NFC移动终端、支付方法.zip

    三、NFC支付方法 1. 接触式支付:用户打开手机上的支付应用,选择付款卡片后将手机靠近POS机,系统会自动读取NFC芯片中的支付信息完成交易。 2. 非接触式支付:部分应用支持“先触后付”模式,即手机无需解锁,...

    电信设备-一种可移动暗室.zip

    通过对“电信设备-一种可移动暗室.zip”压缩包中的“一种可移动暗室.pdf”文件的解读,我们可以了解到这种设备的核心原理、设计特点及实际应用。 一、可移动暗室简介 可移动暗室,顾名思义,是一种可以方便移动的...

    okhttp多文件上传

    三、OkHttp多文件上传步骤 1. 创建OkHttpClient实例:首先,我们需要创建一个OkHttpClient对象,它是OkHttp的核心组件,负责管理网络连接和请求。 ```java OkHttpClient client = new OkHttpClient(); ``` 2. 构建...

    如何编写批处理文件

    **解释**:这段代码演示了如何将D盘的所有`.htm`文件移动到E盘的一个名为`d`的文件夹中,格式化D盘,然后将文件恢复到D盘并将其重命名为`.html`。 #### 四、常用的批处理命令 **1. `Echo`命令** - **用途**:显示...

    久其移动Framework

    远程方法调用(Remote Method Invocation, RMI)是一种Java技术,允许一个Java虚拟机(JVM)上的对象调用另一个JVM中的对象的方法。 **工作流程:** 1. **参数序列化:** 调用方将参数“打包”后发送给远程JVM。 2. **...

    从ASM往操作系统拷文件

    在数据库管理与维护过程中,经常需要将存储在自动存储管理(Automatic Storage Management,简称ASM)中的文件移动或复制到操作系统(OS)的文件系统中。例如,在进行备份、迁移或是故障恢复时,这种操作非常常见。...

    如何编写批处理文件批处理文件批处理文件

    有三种格式: 1、if "参数" == "字符串" 待执行的命令 参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号) 如if "%1"=="a" format a: if {%1}=={} goto noparms if {%2}=={} ...

    py源码实例用Python批量重命名文件

    - **文件移动**:不仅可以重命名文件,还可以将文件移动到其他目录。 通过以上步骤,我们可以轻松地使用Python实现文件的批量重命名,大大提高了文件管理的工作效率。希望本文能帮助你更好地理解和掌握这一实用技巧...

    Delphi中记录文件的操作示范及详细介绍

    本文将深入介绍Delphi中的记录文件操作方法,并通过示例代码来展示如何进行记录文件的基本操作。 #### 一、记录文件简介 记录文件是一种特殊的文件类型,它存储的是具有相同结构的数据记录集合。每个记录都是由多...

    PHP开发环境下文件上传的原理与实现.pdf

    在PHP中,可以使用$_FILES超全局变量来获取上传文件的信息,并使用move_uploaded_file()函数将上传文件移动到指定的目录下。同时,开发者可以对上传文件的格式类型、容量大小等进行限制。 四、限制上传文件的格式...

Global site tag (gtag.js) - Google Analytics