实现思路:就是循环获取到文件夹中的文件,然后逐一的进行文件复制。
//复制文件夹
package com.cdd.util;
import java.io.*;
public class FileUtil {
private static void (File[] files, File d) {
if (!d.exists()) //如果指定目录不存在
d.mkdir(); //创建目录
for (int i = 0; i < files.length; i++) { //循环遍历要复制的文件夹
if (files[i].isFile()) { //如果文件夹中是文件
try {
FileInputStream fis = new FileInputStream(files[i]); //创建FileInputStream对象
FileOutputStream out = new FileOutputStream(new File(d
.getPath()
+ File.separator + files[i].getName())); //复制后文件的保存路径
int count = fis.available();
byte[] data = new byte[count];
while ((str = bre.readLine())!= null) //读取文件通过readline方法可以有效的避免乱码
out.write(str ); //将读取的信息写入文件中
}
out.close(); //关闭流
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (files[i].isDirectory()) { //如果文件夹中是一个路径
File des = new File(d.getPath() + File.separator
+ files[i].getName()); //在复制后路径中创建子文件夹
des.mkdir();
(files[i].listFiles(), des); //再次调用本方法
}
}
System.out.println("文件夹复制成功");
}
㈡ JAVA 把指定的文件 复制到目标文件夹下 怎么写啊
// 由绝对路径得到输出流
//path源路径
//fileCopeToPath 目标路径
String path="D:\我的文档\My Pictures\1.jpg ";
String fileCopeToPath=" D:\我的文档\test ";
File file =new File(path);
if(file.exists){
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos= new FileOutputStream( fileCopeToPath+ File.separator +path.subString(path.lastIndexOf("/\"),path.length));
byte[] b = new byte[fis.available()];
int len = 0;
while ((len = fis.read(b)) != -1)
{
fos.write(b, 0, len);
fos.flush();
}
fos.close();
fis.close();
}
㈢ java 复制一个指定文件夹下的指定文件 到另一个指定文件夹下
下面是我学习过程中总结的几个复制文件的方法,代码如下:
/**
*复制媒体文件,该例子是复制1.mp3文件,列出了四种方式.
*/
importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
{
publicstaticvoidmain(String[]args)throwsIOException{
/**
*共有四个方法,但建议用demo1,demo2;因为demo3需要创建数组,如果文件大,光创建数组就需要很多时间;demo4一定也不要用,
*效率非常慢.
*/
demo1();
demo2();
demo3();
demo4();
}
publicstaticvoiddemo1()throwsFileNotFoundException,IOException{
FileInputStreamfis=newFileInputStream("d:\1.mp3");
FileOutputStreamfos=newFileOutputStream("d:\01.mp3");
intlen=0;
byte[]buf=newbyte[1024];
while((len=fis.read(buf))!=-1){
fos.write(buf,0,len);
}
fis.close();
fos.close();
}
publicstaticvoiddemo2()throwsIOException{
FileInputStreamfis=newFileInputStream("d:\1.mp3");
BufferedInputStreambufis=newBufferedInputStream(fis);
FileOutputStreamfos=newFileOutputStream("d:\02.mp3");
BufferedOutputStreambufos=newBufferedOutputStream(fos);
intlen=0;
while((len=bufis.read())!=-1){
bufos.write(len);
}
bufis.close();
bufos.close();
}
//不建议这种方式
publicstaticvoiddemo3()throwsIOException{
FileInputStreamfis=newFileInputStream("d:\1.mp3");
FileOutputStreamfos=newFileOutputStream("d:\03.mp3");
byte[]buf=newbyte[fis.available()];
fis.read(buf);
fos.write(buf);
fos.close();
fis.close();
}
publicstaticvoiddemo4()throwsIOException{
FileInputStreamfis=newFileInputStream("d:\1.mp3");
FileOutputStreamfos=newFileOutputStream("d:\04.mp3");
intch=0;
while((ch=fis.read())!=-1){
fos.write(ch);
}
fos.close();
fis.close();
}
}
㈣ java如何拷贝文件到另一个目录下
下面列举出4种方式:
1、使用FileStreams复制
这是最经典的方式将一个文版件的内容复制到另一个文件中。 使用权FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。 这是第一个方法的代码:
㈤ java如何复制拷贝一个文件到另一个文件夹如:a文件夹中的.data文件拷贝到b文件夹。
你这JAVA基础太一般了,有空多看看书吧,楼下那个不行,我给你写一个等着啊
㈥ 怎么把目录下的所有文件复制到另外目录下java
java将一个文件夹下的所有文件复制到另一个文件夹下
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class self {
public void IOCopy(String path,String path1){
File file = new File(path);
File file1 = new File(path1);
if(!file.exists()){
System.out.println(file.getName()+"文件不存在");
}else{
System.out.println("存在");
}
byte[] b = new byte[(int) file.length()];
if(file.isFile()){
try {
FileInputStream is= new FileInputStream(file);
FileOutputStream ps= new FileOutputStream(file1);
is.read(b);
ps.write(b);
} catch (Exception e) {
e.printStackTrace();
}
}else if(file.isDirectory()){
if(!file.exists())
file.mkdir();
String[] list = file.list();
for(int i=0;i<list.length;i++){
this.IOCopy(path+"/"+list[i], path1+"/"+list[i]);
}
}
}
public static void main(String args[]){
new self().IOCopy("D:\\device","D:\\TDDOWNLOAD");
}
}
㈦ java如何拷贝一个文件夹内的多个指定的文件到另外一个指定的文件夹下
你好:
请看代码:
/**
*把一个文件夹里的所有文件包括文件夹一并原样拷贝到另一个目录中;
*@authorshuishui
*/
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
publicclassCopyDir001{
publicstaticFiledirFrom;
publicstaticFiledirTo;
//目标路径创建文件夹
publicvoidlistFileInDir(Filefile){
File[]files=file.listFiles();
for(Filef:files){
Stringtempfrom=f.getAbsolutePath();
Stringtempto=tempfrom.replace(dirFrom.getAbsolutePath(),
dirTo.getAbsolutePath());//后面的路径替换前面的路径名
if(f.isDirectory()){
FiletempFile=newFile(tempto);
tempFile.mkdirs();
listFileInDir(f);
}else{
System.out.println("源文件:"+f.getAbsolutePath());
//
intendindex=tempto.lastIndexOf("\");//找到"/"所在的位置
StringmkdirPath=tempto.substring(0,endindex);
FiletempFile=newFile(mkdirPath);
tempFile.mkdirs();//创建立文件夹
System.out.println("目标点:"+tempto);
(tempfrom,tempto);
}
}
}
/**
*封装好的文件拷贝方法
*/
publicvoid(Stringfrom,Stringto){
try{
InputStreamin=newFileInputStream(from);
OutputStreamout=newFileOutputStream(to);
byte[]buff=newbyte[1024];
intlen=0;
while((len=in.read(buff))!=-1){
out.write(buff,0,len);
}
in.close();
out.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
Filefromfile=newFile("e:\shui\test");//源文件夹
Filetofile=newFile("e:\Jying\shui");//目标
CopyDir001=newCopyDir001();
//设置来源去向
.dirFrom=fromfile;
.dirTo=tofile;
.listFileInDir(fromfile);
}
}
㈧ java如何拷贝文件到另一个目录下
/**
*
复制单个文件
*
@param
oldPath
String
原文件路径
如:c:/fqf.txt
*
@param
newPath
String
复制后路径
如:f:/fqf.txt
*
@return
boolean
*/
public
void
File(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
Folder(String
oldPath,
String
newPath)
{
try
{
(new
File(newPath)).mkdirs();
//如果文件夹不存在
则建立新文件夹
File
a=new
File(oldPath);
String[]
file=a.list();
File
temp=null;
for
(int
i
=
0;
i
<
file.length;
i++)
{
if(oldPath.endsWith(File.separator)){
temp=new
File(oldPath+file[i]);
}
else{
temp=new
File(oldPath+File.separator+file[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()){//如果是子文件夹
Folder(oldPath+"/"+file[i],newPath+"/"+file[i]);
}
}
}
catch
(Exception
e)
{
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
}