java復制文件到另一個文件夾
這里以位元組流FileInputStream,FileOutputStream為例。代碼例子如下:
importjava.io.File;
/**
*把一個文件夾中的文件復制到一個指定的文件夾
*@authoryoung
*
*/
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
publicclassCopyFile{
publicstaticvoidmain(String[]args){
/*指定源exe文件的存放路徑*/
Stringstr="f:/jdk-1_5_0_06-windows-i586-p.exe";
/*指定復制後的exe的目標路徑*/
Stringstrs="e:/.exe";
/*創建輸入和輸出流*/
FileInputStreamfis=null;
FileOutputStreamfos=null;
try{
/*將io流和文件關聯*/
fis=newFileInputStream(str);
fos=newFileOutputStream(strs);
byte[]buf=newbyte[1024*1024];
intlen;
while((len=fis.read(buf))!=-1){
fos.write(buf,0,len);
}
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
try{
fis.close();
fos.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
② 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 將一個文件復制到另一處
test.("G:\\G盤寄存資料\\我的文檔1\\音樂課堂.doc","G:\\G盤寄存資料");
請注意上面的有個文件夾名字叫「G盤寄存資料」,你復制的文件後的新文件名也叫「G盤寄存資料」,這樣名字重復了,所以就出錯了。
可以把程序改成這樣的話就行了:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class FileCopy {
public void (String src, String dest){//**********
InputStream is=null;
OutputStream os=null;
char ch[]=src.toCharArray();
//************新添加的代碼**********
int pos=0;
for(int i=ch.length-1;i>=0;i--)
{
if(ch[i]=='\\')
{
if(i>pos)
pos=i;
}
}
String temp=src.substring(pos);
dest=dest+temp;
System.out.println("dest="+dest);
//****************************************
try {
is=new BufferedInputStream(new FileInputStream(src));
os=new BufferedOutputStream(new FileOutputStream(dest));
byte[] b=new byte[256];
int len=0;
String str=null;
StringBuilder sb=new StringBuilder();
try {
while((len=is.read(b))!=-1){
os.write(b,0,len);
}
os.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(is!=null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
if(os!=null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
FileCopy test=new FileCopy();
test.("G:\\G盤寄存資料\\我的文檔1\\hello.txt","G:\\G盤寄存資料");//++++++++++++++++++++++
}
}
④ 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.("h:\\1.txt", "c:\\2.txt");
cm.move("h:\\3.txt", "h:\\r\\e\\4.txt");
}
//文件復制前必須得到當前文件夾名字且要有\
//當復制深層次路徑時要用mkdirs方法
public void (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 把指定的文件 復制到目標文件夾下 怎麼寫啊
// 由絕對路徑得到輸出流
//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如何拷貝文件到另一個目錄下
/**
*
復制單個文件
*
@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();
}
}
⑦ 怎麼把目錄下的所有文件復制到另外目錄下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中如何實現將指定路徑下的文件復制到另一路徑下
renameTo(File dest) 方法 的作用是,重新命名此抽象路徑名表示的文件
你用這個只是將該文件換了一個路徑,也就是換了一個位置而已,並不是復制。
你要復制的話,貌似只能新建一個文件,該文件的路徑是將原文件復制到的路徑;然後將舊文件的內容讀出來,寫入到新文件中去,這樣就實現了文件的復制
⑨ java中IO怎麼將一個文件復制到另外一個文件夾
package tv.bilibili;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.FileOutputStream;
public class IoPlay {
public static void main(String[] args) throws IOException{
File f = new File("E:\\新建文本文檔.txt");
File f1 = new File("D:\\");
IoPlay io = new IoPlay();
io.(f,f1);
}
public void (File f,File f1) throws IOException{ //復制文件的方法!
if(!f1.exists()){
f1.mkdir();
}
if(!f1.exists()){//路徑判斷,是路徑還是單個的文件
File[] cf = f.listFiles();
for(File fn : cf){
if(fn.isFile()){
FileInputStream fis = new FileInputStream(fn);
FileOutputStream fos = new FileOutputStream(f1 + "\\" +fn.getName());
byte[] b = new byte[1024];
int i = fis.read(b);
while(i != -1){
fos.write(b, 0, i);
i = fis.read(b);
}
fis.close();
fos.close();
}else{
File fb = new File(f1 + "\\" + fn.getName());
fb.mkdir();
if(fn.listFiles() != null){//如果有子目錄遞歸復制子目錄!
(fn,fb);
}
}
}
}else{
FileInputStream fis = new FileInputStream(f);
FileOutputStream fos = new FileOutputStream(f1 + "\\" +f.getName());
byte[] b = new byte[1024];
int i = fis.read(b);
while(i != -1){
fos.write(b, 0, i);
i = fis.read(b);
}
fis.close();
fos.close();
}
}
}
以上是我自己寫的,講一個文件復制到例外一個地方,無論是文件,還是文件夾都可以
⑩ java如何復制拷貝一個文件到另一個文件夾如:a文件夾中的.data文件拷貝到b文件夾。
你可以個java inputStrem流和outputStream流來實現這個功能。
import java.io.*;
public class FileStreamDemo {
public static void main(String[] args) {
try {
// 來源文件
FileInputStream in = new FileInputStream("D:/b.txt");
// 目的文件
FileOutputStream out = new FileOutputStream("C:/a.txt");
byte[] bytearray = new byte[1024];
do {
in.read(bytearray, 0, 1024);
out.write(bytearray);
} while (in.available() > 0);
in.close();
out.close();
} catch ( e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}