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盤寄存資料");//++++++++++++++++++++++
}
}
2. Java代碼拷貝文件夾 注:復制文件夾
Java代碼復制文件夾時,則需要利用Flie類在目標文件夾中創建相應的目錄,並且使用遞歸方法,代碼如下:
importjava.io.*;
/**
*復制文件夾或文件夾
*/
publicclassCopyDirectory{
//源文件夾
staticStringurl1="F:/photos";
//目標文件夾
staticStringurl2="D:/tempPhotos";
publicstaticvoidmain(Stringargs[])throwsIOException{
//創建目標文件夾
(newFile(url2)).mkdirs();
//獲取源文件夾當前下的文件或目錄
File[]file=(newFile(url1)).listFiles();
for(inti=0;i<file.length;i++){
if(file[i].isFile()){
//復制文件
File(file[i],newFile(url2+file[i].getName()));
}
if(file[i].isDirectory()){
//復制目錄
StringsourceDir=url1+File.separator+file[i].getName();
StringtargetDir=url2+File.separator+file[i].getName();
Directiory(sourceDir,targetDir);
}
}
}
//復制文件
publicstaticvoidFile(FilesourceFile,FiletargetFile)
throwsIOException{
//新建文件輸入流並對它進行緩沖
FileInputStreaminput=newFileInputStream(sourceFile);
BufferedInputStreaminBuff=newBufferedInputStream(input);
//新建文件輸出流並對它進行緩沖
FileOutputStreamoutput=newFileOutputStream(targetFile);
BufferedOutputStreamoutBuff=newBufferedOutputStream(output);
//緩沖數組
byte[]b=newbyte[1024*5];
intlen;
while((len=inBuff.read(b))!=-1){
outBuff.write(b,0,len);
}
//刷新此緩沖的輸出流
outBuff.flush();
//關閉流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
//復制文件夾
publicstaticvoidDirectiory(StringsourceDir,StringtargetDir)
throwsIOException{
//新建目標目錄
(newFile(targetDir)).mkdirs();
//獲取源文件夾當前下的文件或目錄
File[]file=(newFile(sourceDir)).listFiles();
for(inti=0;i<file.length;i++){
if(file[i].isFile()){
//源文件
FilesourceFile=file[i];
//目標文件
FiletargetFile=newFile(newFile(targetDir).getAbsolutePath()+File.separator+file[i].getName());
File(sourceFile,targetFile);
}
if(file[i].isDirectory()){
//准備復制的源文件夾
Stringdir1=sourceDir+"/"+file[i].getName();
//准備復制的目標文件夾
Stringdir2=targetDir+"/"+file[i].getName();
Directiory(dir1,dir2);
}
}
}
}
3. 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();
}
}
4. java 編寫程序,拷貝一個帶內容的文件夾。 例如:將c:\program files\java 文件夾拷貝到D盤的根目錄下
一、復制文件代碼
print?import java.io.*;
import java.util.*;
class Copy
{
static void (String from,String to) throws IOException
{
BufferedReader in=new BufferedReader(new FileReader(from));
BufferedWriter out=new BufferedWriter(new FileWriter(new File(to)));
String line=null;
while((line=in.readLine())!=null)
{
out.write(line+"\n");
}
in.close();
out.close();
}
public static void main(String[] args) throws IOException
{
Scanner sc=new Scanner(System.in);
System.out.print("請輸入文件路徑:");
String from=sc.next();
System.out.print("請輸入拷貝路徑:");
String to=sc.next();
(from,to);
}
}
import java.io.*;
import java.util.*;
class Copy
{
static void (String from,String to) throws IOException
{
BufferedReader in=new BufferedReader(new FileReader(from));
BufferedWriter out=new BufferedWriter(new FileWriter(new File(to)));
String line=null;
while((line=in.readLine())!=null)
{
out.write(line+"\n");
}
in.close();
out.close();
}
public static void main(String[] args) throws IOException
{
Scanner sc=new Scanner(System.in);
System.out.print("請輸入文件路徑:");
String from=sc.next();
System.out.print("請輸入拷貝路徑:");
String to=sc.next();
(from,to);
}
}
二、復制文件夾代碼 https://wenku..com/view/2fedc744f7ec4afe04a1df37.html
5. 利用JAVA語言編寫一個 名為的程序 實現文件的拷貝功能,應該怎樣做
import java.io.File;x0dx0aimport java.io.FileInputStream;x0dx0aimport java.io.FileNotFoundException;x0dx0aimport java.io.FileOutputStream;x0dx0aimport java.io.IOException;x0dx0apublic class Copy {x0dx0a/**x0dx0a* @param argsx0dx0a*/x0dx0apublic static void main(String[] args) {x0dx0a// TODO Auto-generated method stubx0dx0aif(args.length!=2){x0dx0aSystem.out.print("沒有輸入正確數目的參數,程序退出!");x0dx0aSystem.exit(0);x0dx0a}x0dx0aFile fileS = new File("./"+args[0]);x0dx0aFile fileD = new File("./"+args[1]);x0dx0aif(fileD.exists())System.out.println("目標文件 "+args[1]+" 已存在!");x0dx0abyte[] temp = new byte[50];x0dx0aint totalSize = 0;x0dx0atry {x0dx0aFileInputStream fr = new FileInputStream(fileS);x0dx0aFileOutputStream fo = new FileOutputStream(fileD);x0dx0aint length = 0;x0dx0awhile((length = fr.read(temp, 0, temp.length)) != -1){x0dx0atotalSize += length;x0dx0afo.write(temp, 0, length);x0dx0a}x0dx0aSystem.out.println("文件 "+args[0]+" 有 "+totalSize+" 個位元組");x0dx0aSystem.out.println("復制完成!");x0dx0a} catch (FileNotFoundException e) {x0dx0a// TODO Auto-generated catch blockx0dx0ae.printStackTrace();x0dx0aSystem.out.println("源文件 "+args[0]+" 不存在!");x0dx0a} catch (IOException e) {x0dx0a// TODO Auto-generated catch blockx0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0a}
6. 怎麼用java實現將一個文件的內容復制到另一個文件內容的後面
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
publicclassFileCopy{
staticfinalStringfromeFile="c:\test1.txt";
staticfinalStringtoFile="c:\test2.txt";
publicstaticvoidmain(Stringargs[]){
try{
BufferedReaderread=newBufferedReader(newFileReader(newFile(fromeFile)));
FileWriterwrite=newFileWriter(newFile(toFile),true);
Stringtemp;
while((temp=read.readLine())!=null){
write.write(temp);
}
write.close();
read.close();
System.out.println("內容已從"+fromeFile+"復制追加到"+toFile);
}catch(IOExceptione){
e.printStackTrace();
}
}
}
7. JAVA高手請進!求一個JAVA程序:將一個文件中的內容復制到另一個文件中。
用記事本打開,復制到另一個文件中。
8. java如何實現將一個記事本文件內容復制到另一個文件
import java.io.File;x0dx0aimport java.io.FileInputStream;x0dx0aimport java.io.FileNotFoundException;x0dx0aimport java.io.FileOutputStream;x0dx0aimport java.io.IOException;x0dx0ax0dx0apublic class CopyMove {x0dx0ax0dx0a /**x0dx0a * @param argsx0dx0a */x0dx0a public static void main(String[] args) {x0dx0a // TODO Auto-generated method stubx0dx0a CopyMove cm = new CopyMove();x0dx0a cm.("h:\\1.txt", "c:\\2.txt");x0dx0a cm.move("h:\\3.txt", "h:\\r\\e\\4.txt");x0dx0a }x0dx0a //文件復制前必須得到當前文件夾名字且要有\x0dx0a //當復制深層次路徑時要用mkdirs方法x0dx0a public void (String path1,String path2){x0dx0a try {x0dx0a FileInputStream fis = new FileInputStream(path1);x0dx0a int l = fis.available();x0dx0a byte[] c = new byte[l];x0dx0a fis.read(c);x0dx0a fis.close();x0dx0a int i = path2.lastIndexOf("\\")+1;x0dx0a System.out.println(i);x0dx0a String path = path2.substring(0, i);x0dx0a System.out.println(path);x0dx0a File f = new File(path);x0dx0a f.mkdirs();x0dx0a// System.out.println(f.getAbsolutePath());x0dx0a// System.out.println(f.isDirectory());x0dx0a FileOutputStream fos = new FileOutputStream(path2);x0dx0a fos.write(c);x0dx0a fos.close();x0dx0a System.out.println("文件復製成功");x0dx0a } catch (FileNotFoundException e) {x0dx0a // TODO Auto-generated catch blockx0dx0a System.out.println("文件復制失敗");x0dx0a } catch (IOException e) {x0dx0a // TODO Auto-generated catch blockx0dx0a e.printStackTrace();x0dx0a }x0dx0a }x0dx0a x0dx0a public void move(String path1,String path2){x0dx0a try {x0dx0a FileInputStream fis = new FileInputStream(path1);x0dx0a int l = fis.available();x0dx0a byte[] c = new byte[l];x0dx0a fis.read(c);x0dx0a fis.close();x0dx0a int i = path2.lastIndexOf("\\");x0dx0a //System.out.println(i);x0dx0a String path = path2.substring(0, i);x0dx0a System.out.println(path);x0dx0a File f = new File(path);x0dx0a f.mkdirs();x0dx0a// System.out.println(f.getAbsolutePath());x0dx0a// System.out.println(f.isDirectory());x0dx0a FileOutputStream fos = new FileOutputStream(path2);x0dx0a fos.write(c);x0dx0a fos.close();x0dx0a System.out.println("文件移動成功");x0dx0a File f2 = new File(path1);x0dx0a f2.delete();x0dx0a } catch (FileNotFoundException e) {x0dx0a // TODO Auto-generated catch blockx0dx0a System.out.println("文件移動失敗");x0dx0a } catch (IOException e) {x0dx0a // TODO Auto-generated catch blockx0dx0a e.printStackTrace();x0dx0a }x0dx0a }x0dx0ax0dx0a}
9. java如何拷貝文件到另一個目錄下
下面列舉出4種方式:
1、使用FileStreams復制
這是最經典的方式將一個文版件的內容復制到另一個文件中。 使用權FileInputStream讀取文件A的位元組,使用FileOutputStream寫入到文件B。正如你所看到的我們執行幾個讀和寫操作try的數據,所以這應該是一個低效率的,下一個方法我們將看到新的方式。 這是第一個方法的代碼: