當前位置:編程學習大全網 - 源碼下載 - 求寫壹個java小程序

求寫壹個java小程序

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;

import?javax.swing.JOptionPane;

/**

*?復制文件或文件夾

*?

*?zww

*/

public?class?CopyFileUtil?{

private?static?String?MESSAGE?=?"";

/**

?*?復制單個文件

?*?

?*?@param?srcFileName

?*待復制的文件名

?*?@param?descFileName

?*目標文件名

?*?@param?overlay

?*如果目標文件存在,是否覆蓋

?*?@return?如果復制成功返回true,否則返回false

?*/

public?static?boolean?copyFile(String?srcFileName,?String?destFileName,

boolean?overlay)?{

File?srcFile?=?new?File(srcFileName);

//?判斷源文件是否存在

if?(!srcFile.exists())?{

MESSAGE?=?"源文件:"?+?srcFileName?+?"不存在!";

JOptionPane.showMessageDialog(null,?MESSAGE);

return?false;

}?else?if?(!srcFile.isFile())?{

MESSAGE?=?"復制文件失敗,源文件:"?+?srcFileName?+?"不是壹個文件!";

JOptionPane.showMessageDialog(null,?MESSAGE);

return?false;

}

//?判斷目標文件是否存在

File?destFile?=?new?File(destFileName);

if?(destFile.exists())?{

//?如果目標文件存在並允許覆蓋

if?(overlay)?{

//?刪除已經存在的目標文件,無論目標文件是目錄還是單個文件

new?File(destFileName).delete();

}

}?else?{

//?如果目標文件所在目錄不存在,則創建目錄

if?(!destFile.getParentFile().exists())?{

//?目標文件所在目錄不存在

if?(!destFile.getParentFile().mkdirs())?{

//?復制文件失敗:創建目標文件所在目錄失敗

return?false;

}

}

}

//?復制文件

int?byteread?=?0;?//?讀取的字節數

InputStream?in?=?null;

OutputStream?out?=?null;

try?{

in?=?new?FileInputStream(srcFile);

out?=?new?FileOutputStream(destFile);

byte[]?buffer?=?new?byte[1024];

while?((byteread?=?in.read(buffer))?!=?-1)?{

out.write(buffer,?0,?byteread);

}

return?true;

}?catch?(FileNotFoundException?e)?{

return?false;

}?catch?(IOException?e)?{

return?false;

}?finally?{

try?{

if?(out?!=?null)

out.close();

if?(in?!=?null)

in.close();

}?catch?(IOException?e)?{

e.printStackTrace();

}

}

}

/**

?*?復制整個目錄的內容

?*?

?*?@param?srcDirName

?*待復制目錄的目錄名

?*?@param?destDirName

?*目標目錄名

?*?@param?overlay

?*如果目標目錄存在,是否覆蓋

?*?@return?如果復制成功返回true,否則返回false

?*/

public?static?boolean?copyDirectory(String?srcDirName,?String?destDirName,

boolean?overlay)?{

//?判斷源目錄是否存在

File?srcDir?=?new?File(srcDirName);

if?(!srcDir.exists())?{

MESSAGE?=?"復制目錄失敗:源目錄"?+?srcDirName?+?"不存在!";

JOptionPane.showMessageDialog(null,?MESSAGE);

return?false;

}?else?if?(!srcDir.isDirectory())?{

MESSAGE?=?"復制目錄失敗:"?+?srcDirName?+?"不是目錄!";

JOptionPane.showMessageDialog(null,?MESSAGE);

return?false;

}

//?如果目標目錄名不是以文件分隔符結尾,則加上文件分隔符

if?(!destDirName.endsWith(File.separator))?{

destDirName?=?destDirName?+?File.separator;

}

File?destDir?=?new?File(destDirName);

//?如果目標文件夾存在

if?(destDir.exists())?{

//?如果允許覆蓋則刪除已存在的目標目錄

if?(overlay)?{

new?File(destDirName).delete();

}?else?{

MESSAGE?=?"復制目錄失敗:目的目錄"?+?destDirName?+?"已存在!";

JOptionPane.showMessageDialog(null,?MESSAGE);

return?false;

}

}?else?{

//?創建目的目錄

System.out.println("目的目錄不存在,準備創建。。。");

if?(!destDir.mkdirs())?{

System.out.println("復制目錄失敗:創建目的目錄失敗!");

return?false;

}

}

boolean?flag?=?true;

File[]?files?=?srcDir.listFiles();

for?(int?i?=?0;?i?<?files.length;?i++)?{

//?復制文件

if?(files[i].isFile())?{

flag?=?CopyFileUtil.copyFile(files[i].getAbsolutePath(),

destDirName?+?files[i].getName(),?overlay);

if?(!flag)

break;

}?else?if?(files[i].isDirectory())?{

flag?=?CopyFileUtil.copyDirectory(files[i].getAbsolutePath(),

destDirName?+?files[i].getName(),?overlay);

if?(!flag)

break;

}

}

if?(!flag)?{

MESSAGE?=?"復制目錄"?+?srcDirName?+?"至"?+?destDirName?+?"失敗!";

JOptionPane.showMessageDialog(null,?MESSAGE);

return?false;

}?else?{

return?true;

}

}

public?static?void?main(String[]?args)?{

String?srcDirName?=?"C:/test/test0/test1";

String?destDirName?=?"c:/ttt";

CopyFileUtil.copyDirectory(srcDirName,?destDirName,?true);

}

}

  • 上一篇:linux的內核版本2.3.20是什麽版本linux的內核
  • 下一篇:什麽是運輸代理?
  • copyright 2024編程學習大全網