企业网站关键词应如何优化,厦门手机网站建设,昆明网站免费制作,网站开发为什么需要域名尽管Java提供了一个可以处理文件的IO操作类。 但是没有一个复制文件的方法。 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候。 然而有几种方法可以进行Java文件复制操作,下面列举出4中最受欢迎的方式。1. 使用FileStreams复制这是最经典的方式将一个文件的内…尽管Java提供了一个可以处理文件的IO操作类。 但是没有一个复制文件的方法。 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候。 然而有几种方法可以进行Java文件复制操作,下面列举出4中最受欢迎的方式。1. 使用FileStreams复制这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节使用FileOutputStream写入到文件B。 这是第一个方法的代码:private static void copyFileUsingFileStreams(File source, File dest)throws IOException {InputStream input null;OutputStream output null;try {input new FileInputStream(source);output new FileOutputStream(dest);byte[] buf new byte[1024];int bytesRead;while ((bytesRead input.read(buf)) 0) {output.write(buf, 0, bytesRead);}} finally {input.close();output.close();}}正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。2. 使用FileChannel复制Java NIO包括transferFrom方法,根据文档应该比文件流复制的速度更快。 这是第二种方法的代码:private static void copyFileUsingFileChannels(File source, File dest) throws IOException {FileChannel inputChannel null;FileChannel outputChannel null;try {inputChannel new FileInputStream(source).getChannel();outputChannel new FileOutputStream(dest).getChannel();outputChannel.transferFrom(inputChannel, 0, inputChannel.size());} finally {inputChannel.close();outputChannel.close();}}3. 使用Commons IO复制Apache Commons IO提供拷贝文件方法在其FileUtils类,可用于复制一个文件到另一个地方。它非常方便使用Apache Commons FileUtils类时,您已经使用您的项目。基本上,这个类使用Java NIO FileChannel内部。 这是第三种方法的代码:private static void copyFileUsingApacheCommonsIO(File source, File dest)throws IOException {FileUtils.copyFile(source, dest);}4. 使用Java7的Files类复制如果你有一些经验在Java 7中你可能会知道,可以使用复制方法的Files类文件,从一个文件复制到另一个文件。 这是第四个方法的代码:private static void copyFileUsingJava7Files(File source, File dest)throws IOException {Files.copy(source.toPath(), dest.toPath());}下面看下java拷贝文件到另一个目录下的实现代码具体代码如下所示package com.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;public class TestHtml {/*** 复制单个文件* param oldPath String 原文件路径 如c:/fqf.txt* param newPath String 复制后路径 如f:/fqf.txt* return boolean*/public void copyFile(String oldPath, String newPath) {try {int bytesum 0;int byteread 0;File oldfile new File(oldPath);if (oldfile.exists()) { //文件存在时InputStream inStream new FileInputStream(oldPath); //读入原文件FileOutputStream fs new FileOutputStream(newPath);byte[] buffer new byte[1444];int length;while ( (byteread inStream.read(buffer)) ! -1) {bytesum byteread; //字节数 文件大小System.out.println(bytesum);fs.write(buffer, 0, byteread);}inStream.close();}}catch (Exception e) {System.out.println(复制单个文件操作出错);e.printStackTrace();}}/*** 复制整个文件夹内容* param oldPath String 原文件路径 如c:/fqf* param newPath String 复制后路径 如f:/fqf/ff* return boolean*/public void copyFolder(String oldPath, String newPath) {try {(new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹File anew File(oldPath);String[] filea.list();File tempnull;for (int i 0; i file.length; i) {if(oldPath.endsWith(File.separator)){tempnew File(oldPathfile[i]);}else{tempnew File(oldPathFile.separatorfile[i]);}if(temp.isFile()){FileInputStream input new FileInputStream(temp);FileOutputStream output new FileOutputStream(newPath / (temp.getName()).toString());byte[] b new byte[1024 * 5];int len;while ( (len input.read(b)) ! -1) {output.write(b, 0, len);}output.flush();output.close();input.close();}if(temp.isDirectory()){//如果是子文件夹copyFolder(oldPath/file[i],newPath/file[i]);}}}catch (Exception e) {System.out.println(复制整个文件夹内容操作出错);e.printStackTrace();}}public static void main(String[] args)throws Exception {// //这是你的源文件本身是存在的// File beforefile new File(C:/Users/Administrator/Desktop/Untitled-2.html);//// //这是你要保存之后的文件是自定义的本身不存在// File afterfile new File(C:/Users/Administrator/Desktop/jiekou0/Untitled-2.html);//// //定义文件输入流用来读取beforefile文件// FileInputStream fis new FileInputStream(beforefile);//// //定义文件输出流用来把信息写入afterfile文件中// FileOutputStream fos new FileOutputStream(afterfile);//// //文件缓存区// byte[] b new byte[1024];// //将文件流信息读取文件缓存区如果读取结果不为-1就代表文件没有读取完毕反之已经读取完毕// while(fis.read(b)!-1){// //将缓存区中的内容写到afterfile文件中// fos.write(b);// fos.flush();// }String oldPathC:/Users/Administrator/Desktop/Untitled-2.html;String newPathC:/Users/Administrator/Desktop/jiekou0/Untitled-2.html;TestHtml tnew TestHtml();t.copyFile(oldPath, newPath);}}总结以上所述是小编给大家介绍的java复制文件的4种方式及拷贝文件到另一个目录下的实例代码希望对大家有所帮助如果大家有任何疑问请给我留言小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持