首页 > 编程知识 正文

java实现文件复制上传,java实现文件复制上传不了

时间:2023-12-27 22:27:51 阅读:326840 作者:RZAV

本文目录一览:

使用Java语言如何实现快速文件复制

使用Java语言如何实现快速文件复制:

代码:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.nio.channels.FileChannel;

public class Test {

public static void main(String[] args){

long start = System.currentTimeMillis();

FileInputStream fileInputStream = null;

FileOutputStream fileOutputStream = null;

FileChannel inFileChannel = null;

FileChannel outFileChannel = null;

try {

fileInputStream = new FileInputStream(new File("C:\from\不是闹着玩的.flv"));

fileOutputStream = new FileOutputStream(new File("C:\to\不是闹着玩的.flv"));

inFileChannel = fileInputStream.getChannel();

outFileChannel = fileOutputStream.getChannel();

inFileChannel.transferTo(0, inFileChannel.size(), outFileChannel);//连接两个通道,从in通道读取数据写入out通道。

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if(fileInputStream != null){

fileInputStream.close();

}

if(inFileChannel != null){

inFileChannel.close();

}

if(fileOutputStream != null){

fileOutputStream.close();

}

if(outFileChannel != null){

outFileChannel.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

long end = System.currentTimeMillis();

System.out.println("视频文件从“from”文件夹复制到“to”文件需要" + (end - start) + "毫秒。");

}

}

java如何拷贝文件到另一个目录下

下面列举出4种方式:

1、使用FileStreams复制

这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。 这是第一个方法的代码:

2、使用FileChannel复制

Java NIO包括transferFrom方法,根据文档应该比文件流复制的速度更快。 这是第二种方法的代码:

3、使用Commons IO复制

Apache Commons IO提供拷贝文件方法在其FileUtils类,可用于复制一个文件到另一个地方。它非常方便使用Apache Commons FileUtils类时,您已经使用您的项目。基本上,这个类使用Java NIO FileChannel内部。 这是第三种方法的代码:

4、使用Java7的Files类复制

如果你有一些经验在Java 7中你可能会知道,可以使用复制方法的Files类文件,从一个文件复制到另一个文件。 这是第四个方法的代码:

如何用java程序实现上传文件到指定的URL地址

参考代码如下:

import java.io.*;

/**

* 复制文件夹或文件夹

*/

public class CopyDirectory {

// 源文件夹

static String url1 = "f:/photos";

// 目标文件夹

static String url2 = "d:/tempPhotos";

public static void main(String args[]) throws IOException {

// 创建目标文件夹

(new File(url2)).mkdirs();

// 获取源文件夹当前下的文件或目录

File[] file = (new File(url1)).listFiles();

for (int i = 0; i file.length; i++) {

if (file[i].isFile()) {

// 复制文件

copyFile(file[i],new File(url2+file[i].getName()));

}

if (file[i].isDirectory()) {

// 复制目录

String sourceDir=url1+File.separator+file[i].getName();

String targetDir=url2+File.separator+file[i].getName();

copyDirectiory(sourceDir, targetDir);

}

}

}

// 复制文件

public static void copyFile(File sourceFile,File targetFile)

throws IOException{

// 新建文件输入流并对它进行缓冲

FileInputStream input = new FileInputStream(sourceFile);

BufferedInputStream inBuff=new BufferedInputStream(input);

// 新建文件输出流并对它进行缓冲

FileOutputStream output = new FileOutputStream(targetFile);

BufferedOutputStream outBuff=new BufferedOutputStream(output);

// 缓冲数组

byte[] b = new byte[1024 * 5];

int len;

while ((len =inBuff.read(b)) != -1) {

outBuff.write(b, 0, len);

}

// 刷新此缓冲的输出流

outBuff.flush();

//关闭流

inBuff.close();

outBuff.close();

output.close();

input.close();

}

// 复制文件夹

public static void copyDirectiory(String sourceDir, String targetDir)

throws IOException {

// 新建目标目录

(new File(targetDir)).mkdirs();

// 获取源文件夹当前下的文件或目录

File[] file = (new File(sourceDir)).listFiles();

for (int i = 0; i file.length; i++) {

if (file[i].isFile()) {

// 源文件

File sourceFile=file[i];

// 目标文件

File targetFile=new

File(new File(targetDir).getAbsolutePath()

+File.separator+file[i].getName());

copyFile(sourceFile,targetFile);

}

if (file[i].isDirectory()) {

// 准备复制的源文件夹

String dir1=sourceDir + "/" + file[i].getName();

// 准备复制的目标文件夹

String dir2=targetDir + "/"+ file[i].getName();

copyDirectiory(dir1, dir2);

}

}

}

}

java如何实现将一个记事本文件内容复制到另一个文件?

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

public class CopyMove {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

CopyMove cm = new CopyMove();

cm.copy("h:\1.txt", "c:\2.txt");

cm.move("h:\3.txt", "h:\r\e\4.txt");

}

//文件复制前必须得到当前文件夹名字且要有

//当复制深层次路径时要用mkdirs方法

public void copy(String path1,String path2){

try {

FileInputStream fis = new FileInputStream(path1);

int l = fis.available();

byte[] c = new byte[l];

fis.read(c);

fis.close();

int i = path2.lastIndexOf("\")+1;

System.out.println(i);

String path = path2.substring(0, i);

System.out.println(path);

File f = new File(path);

f.mkdirs();

// System.out.println(f.getAbsolutePath());

// System.out.println(f.isDirectory());

FileOutputStream fos = new FileOutputStream(path2);

fos.write(c);

fos.close();

System.out.println("文件复制成功");

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

System.out.println("文件复制失败");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void move(String path1,String path2){

try {

FileInputStream fis = new FileInputStream(path1);

int l = fis.available();

byte[] c = new byte[l];

fis.read(c);

fis.close();

int i = path2.lastIndexOf("\");

//System.out.println(i);

String path = path2.substring(0, i);

System.out.println(path);

File f = new File(path);

f.mkdirs();

// System.out.println(f.getAbsolutePath());

// System.out.println(f.isDirectory());

FileOutputStream fos = new FileOutputStream(path2);

fos.write(c);

fos.close();

System.out.println("文件移动成功");

File f2 = new File(path1);

f2.delete();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

System.out.println("文件移动失败");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

java实现文件上传,代码尽量简洁~~~~~·

你说的2种方法都是很简单的,参考网上的资料都不难做出,用io流做更是基础中的基础,我说下smartupload好了,有的人是直接写在jsp上面,感觉比较乱,我一般都是写在action里面,打好jar包和配置后

SmartUpload mySmartUpload = new SmartUpload();

//如果是struts2.0或者webwork 则是mySmartUpload.initialize(ServletActionContext.getServletConfig(),ServletActionContext.getRequest(),ServletActionContext.getResponse());

mySmartUpload.initialize(servlet.getServletConfig(), request,response);

mySmartUpload.setTotalMaxFileSize(500000);

//如果上传任意文件不设置mySmartUpload.setAllowedFilesList(文件后缀名)就可以了

mySmartUpload.upload();

for (int i = 0; i mySmartUpload.getFiles().getCount(); i++) {

com.jspsmart.upload.File file = mySmartUpload.getFiles().getFile(i);

if (file.isMissing()) continue;

file.saveAs(保存的地址 + file.getFileName(),

su.SAVE_PHYSICAL);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。