`

java 各种copy

    博客分类:
  • Java
阅读更多

java里面有许多需要copy的地方,比如copy文件,copy数组,现总结如下

(1)copy文件

public static void copyFile(String resourceFileName, String targetFileName)
			throws IOException {
		File resourceFile = new File(resourceFileName);
		File targetFile = new File(targetFileName);
		if (!resourceFile.exists()) {
			System.out.println("[copyFile ]: resource file has not been found:"
					+ resourceFileName);
		}
		if (!resourceFile.isFile()) {
			System.out.println("[copyFile ]: directory can not be copyed:"
					+ resourceFileName);
		}

		if (targetFile.isDirectory()) {
			targetFile = new File(targetFile, resourceFile.getName());
		}

		FileInputStream resource = null;
		FileOutputStream target = null;
		try {
			resource = new FileInputStream(resourceFile);
			target = new FileOutputStream(targetFile);
			copyFile(resourceFile, targetFile);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (resource != null) {
				resource.close();
			}
			if (target != null) {
				target.close();
			}
		}
	}

/**
	 * 
	 * @param srcFile
	 *            :must be regular file,can not be folder;
	 * @param targetFile
	 *            :must be regular file,can not be folder;
	 * @throws IOException
	 */
	public static void copyFile(File srcFile, File targetFile)
			throws IOException {
		FileInputStream in = new FileInputStream(srcFile);

		FileOutputStream out = new FileOutputStream(targetFile);
		copyFile(in, out);

	}
public static void copyFile(InputStream in, FileOutputStream target)
			throws IOException {
		// File targetFile = new File(targetFileName);
		// FileOutputStream target = null;
		// if (targetFile.isDirectory())
		// {
		// targetFile = new File(targetFile, simpleName);
		// }
		try {
			// target = new FileOutputStream(targetFile);
			byte[] buffer = new byte[BUFF_SIZE];
			int byteNum;

			while ((byteNum = in.read(buffer)) != NEGATIVE_ONE) {
				target.write(buffer, 0, byteNum);

			}
			System.out.println("[SystemUtil:copyFile]:file copy successfully!");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (in != null) {
				in.close();
				in = null;
			}
			if (target != null) {
				target.close();
				target = null;
			}
		}
	}

 

(2)copy数组

/***
	 * 合并字节数组
	 * 
	 * @param a
	 * @return
	 */
	public static byte[] mergeArray(byte[]... a) {
		// 合并完之后数组的总长度
		int index = 0;
		int sum = 0;
		for (int i = 0; i < a.length; i++) {
			sum = sum + a[i].length;
		}
		byte[] result = new byte[sum];
		for (int i = 0; i < a.length; i++) {
			int lengthOne = a[i].length;
			if (lengthOne == 0) {
				continue;
			}
			// 拷贝数组
			System.arraycopy(a[i], 0, result, index, lengthOne);
			index = index + lengthOne;
		}
		return result;
	}
/***
	 * append a byte.
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public static byte[] appandByte(byte[] a, byte b) {
		int length = a.length;
		byte[] resultBytes = new byte[length + 1];
		System.arraycopy(a, 0, resultBytes, 0, length);
		resultBytes[length] = b;
		return resultBytes;
	}
public static byte[] copyByte(int start, int length, byte[] source) {
		byte[] des = new byte[length];
		System.arraycopy(source, start, des, 0, length);
		return des;
	}

 

(3)copy List

/***
	 * 复制 list
	 * @param srcList
	 * @param start
	 * @param length
	 * @return
	 */
	public static List copyList(List srcList,int start,int length){
		if(ValueWidget.isNullOrEmpty(srcList)){
			return null;
		}
		List resultList=new ArrayList();
		for(int i=start;i<length+start&& i<srcList.size();i++){
			resultList.add(srcList.get(i));
		}
		return resultList;
	}

 测试:

@Test
	public void test_ArrayList_remove(){
		List list=new ArrayList<String>();
		int range=3;
		list.add("aa");
		list.add("bb");
		list.add("cc");
		list.add("dd");
		list.add("ee");
		list.add("ff");
//		if(list.size()>range){//excel前两行是标题
//			System.out.println("移除序号"+range+"....");
//			for(int j=range;j<=list.size()+1;j++){
//				Object obj32=list.remove(range);
//			}
//		}
		System.out.println( SystemHWUtil. copyList(list, 0, 14));
	}

 参考:

http://www.baidu.com/link?url=Wwh8KqbUeOaaKFCcp8xAQ8ALHUuunhm1kR95EAbhk20LkxkL_8pQbFCfnaoKqP1KX4pzf8lCeRWWFk2fEDqK5a

http://www.yunmasoft.com

 

  • 大小: 229.4 KB
0
0
分享到:
评论

相关推荐

    Java实现的类似copy命令

    用Java实现的copy命令,类似windows命令行的copy命令,能够给复制任何类型文件

    java_copy.rar_ java_copy

    标题中的"java_copy.rar_ java_copy"提示我们这是一个与Java编程相关的学习资源,可能是学生代码示例或练习项目。描述中的"this is a student code"进一步证实了这一点,表明这是一份学生编写的Java代码。 在Java...

    Java copy对象的工具类

    Java CopyUtil工具类,可以进行对象的深copy,比如:对象里面包含对象,对象里面包含Map,List,Set...等复杂类型的属性都可以copy,copy后的对象与原有对象没有联系,即改变原有对象内容,不会改变copy后的对象里面的...

    java开源项目(2)Java File Copy Library

    通过以上讨论,我们可以看出Java File Copy Library是一个功能丰富的开源项目,它为Java开发者提供了一个强大且易用的工具,以处理各种复杂的文件复制需求。开发者可以将其集成到自己的应用中,提升文件操作的效率和...

    java执行文件COPY

    java执行文件COPY java执行文件COPY java执行文件COPY

    java对象Copy

    NULL 博文链接:https://sivan-0222.iteye.com/blog/2211077

    Java文件操作一例:Copy 复制文件.rar

    Java文件操作一例:Copy 复制文件,虽然是复制文件,不过通过本源码你可以学习很多相关的Java基础技巧,比如Java对文件的事件处理、取得目录内容的事件处理、如何弹出文件选择器、如何得到选择文件的绝对路径、如何...

    java与zero-copy

    零拷贝(Zero-Copy)是一种提升系统性能的技术,它能够减少甚至避免数据在操作系统内核地址空间和用户地址空间之间的复制。在传统的I/O操作中,数据需要从文件系统读入缓冲区,再从缓冲区写入用户空间,最后通过网络...

    java-fileCopy.zip_JavaFiles.copy_java_java File 复制_java copyfiel

    本资源"java-fileCopy.zip_JavaFiles.copy_java_java File 复制_java copyfiel"提供了一个关于如何使用Java语言实现文件及目录复制功能的示例。下面将详细解释相关知识点。 1. **Java File类**: Java中的`File`...

    48-FastCopy复制更快

    7. **广泛适用**:FastCopy不仅适用于硬盘间的数据转移,还可以用于USB闪存驱动器、网络共享、NAS设备等各种存储设备。 在提供的文件列表中,"FastCopy.exe"是FastCopy的可执行文件,用户可以直接运行该程序来启动...

    android 浅复制和深复制-Java Generic Deep Copy 篇

    本文将深入探讨Java中的浅复制和深复制,并以Android为背景,结合具体的实例讲解如何实现Java泛型深拷贝。 首先,我们要理解浅复制和深复制的概念。浅复制(Shallow Copy)是指创建一个新的对象,然后将原对象引用...

    A copy of classic MinesSweeper Game by Java.一个使用Java写的经典扫雷游戏的复制品

    A copy of classic MinesSweeper Game by Java.一个使用Java写的经典扫雷游戏的复制品 A copy of classic MinesSweeper Game by Java.一个使用Java写的经典扫雷游戏的复制品 A copy of classic MinesSweeper Game by...

    java List 深度复制方法

    在Java编程中,数据结构是程序设计的基础,而List接口作为集合框架的重要组成部分,常常用于存储有序的元素序列。当我们需要复制一个List时,可能会遇到浅复制和深复制的概念。浅复制只复制对象本身,而不复制它引用...

    Java中数组的各种应用

    本文将深入探讨Java中数组的各种应用,旨在帮助初学者理解并掌握数组的使用。 一、数组定义与初始化 在Java中,数组可以看作是同类型元素的有序集合。例如,你可以创建一个整型数组来存储一系列的整数。数组的定义...

    文件copy 目录copy

    8. **错误处理**:复制过程中可能会遇到各种错误,如磁盘空间不足、文件锁等,优秀的复制工具会提供错误处理机制,如重试、跳过或记录错误。 综上所述,文件复制和目录复制是IT工作中的基础操作,理解其工作原理和...

    java ftp服务器copy命令实现

    java程序调用API 实现在ftp内文件夹和文件的拷贝,ftp服务器之间的文件和文件夹的拷贝 欢迎来群:41229007 QQ:119346711讨论

    关于java中的深copy与浅copy的问题

    在Java编程中,深拷贝和浅拷贝是两种常见的对象复制方式,它们涉及到对象的内存管理和内存层次的复制。本文将深入探讨这两个概念,并通过一个具体的示例——`CopyTest`来阐述它们的区别。 首先,浅拷贝(Shallow ...

    JAVA-write-EXCEL.rar_copy excel java_java write_java读取_java读取Exc

    本主题主要关注如何使用Java来读取和写入Excel文件,特别是通过标题"JAVA-write-EXCEL.rar_copy excel java_java write_java读取_java读取Excel"所暗示的知识点。我们将探讨两个主要的API库:Apache POI和JExcelAPI...

    copy_1.java

    copy_1.java

    java调用cmd创建目录和复制文件

    在Java编程中,有时我们需要执行一些系统级别的操作,如创建目录、复制文件等,这些操作在Windows系统中可以通过命令行接口(CMD)来完成。Java提供了Runtime类和ProcessBuilder类来实现这样的功能,允许我们调用...

Global site tag (gtag.js) - Google Analytics