楊彩的Java博客
          醉里挑燈看劍,夢里吹雨聽風.仗劍獨走天涯,試問誰與爭鋒!
          posts - 8,comments - 49,trackbacks - 0
          /**
          ?* //FileOperate.java
          ?* 文件的各種操作
          ?* 楊彩 http://blog.sina.com.cn/m/yangcai
          ?* 文件操作 1.0
          ?*/
          ?
          //package common;
          ?
          import java.io.*;
          ?
          public class FileOperate
          {
          ?static boolean exitnow=false;
          ?static String aa,bb;
          ? public FileOperate() {
          ? }
          ?
          ? /**
          ?? * 新建目錄
          ?? */
          ? public void newFolder(String folderPath) {
          ??? try
          ??? {
          ????? String filePath = folderPath;
          ????? filePath = filePath.toString();
          ????? File myFilePath = new File(filePath);
          ????? if(!myFilePath.exists())
          ????? {
          ??????? myFilePath.mkdir();
          ????? }
          ????? System.out.println("新建目錄操作 成功執行");
          ??? }
          ??? catch(Exception e)
          ??? {
          ????? System.out.println("新建目錄操作出錯");
          ????? e.printStackTrace();
          ??? }
          ? }
          ?
          ? /**
          ?? * 新建文件
          ?? */
          ? public void newFile(String filePathAndName, String fileContent)
          ? {
          ?
          ??? try
          ??? {
          ????? String filePath = filePathAndName;
          ????? filePath = filePath.toString();
          ????? File myFilePath = new File(filePath);
          ????? if (!myFilePath.exists())
          ????? {
          ??????? myFilePath.createNewFile();
          ????? }
          ????? FileWriter resultFile = new FileWriter(myFilePath);
          ????? PrintWriter myFile = new PrintWriter(resultFile);
          ????? String strContent = fileContent;
          ????? myFile.println(strContent);
          ????? resultFile.close();
          ????? System.out.println("新建文件操作 成功執行");
          ??? }
          ??? catch (Exception e) {
          ????? System.out.println("新建目錄操作出錯");
          ????? e.printStackTrace();
          ?
          ??? }
          ?
          ? }
          ?
          ? /**
          ?? * 刪除文件
          ?? */
          ? public void delFile(String filePathAndName) {
          ??? try {
          ????? String filePath = filePathAndName;
          ????? filePath = filePath.toString();
          ????? File myDelFile = new File(filePath);
          ????? myDelFile.delete();
          ????? System.out.println("刪除文件操作 成功執行");
          ??? }
          ??? catch (Exception e) {
          ????? System.out.println("刪除文件操作出錯");
          ????? e.printStackTrace();
          ?
          ??? }
          ?
          ? }
          ?
          ? /**
          ?? * 刪除文件夾
          ?? */
          ? public void delFolder(String folderPath)
          ? {
          ??? try
          ??? {
          ????? delAllFile(folderPath); //刪除完里面所有內容
          ????? String filePath = folderPath;
          ????? filePath = filePath.toString();
          ????? File myFilePath = new File(filePath);
          ????? myFilePath.delete(); //刪除空文件夾
          ????? System.out.println("刪除文件夾操作 成功執行");
          ??? }
          ??? catch (Exception e)
          ??? {
          ????? System.out.println("刪除文件夾操作出錯");
          ????? e.printStackTrace();
          ?
          ??? }
          ?
          ? }
          ?
          ? /**
          ?? * 刪除文件夾里面的所有文件
          ?? * @param path String 文件夾路徑 如 c:/fqf
          ?? */
          ? public void delAllFile(String path)
          ? {
          ??? File file = new File(path);
          ??? if(!file.exists())
          ??? {
          ????? return;
          ??? }
          ??? if(!file.isDirectory())
          ??? {
          ????? return;
          ??? }
          ??? String[] tempList = file.list();
          ??? File temp = null;
          ??? for (int i = 0; i < tempList.length; i++)
          ??? {
          ????? if(path.endsWith(File.separator))
          ????? {
          ??????? temp = new File(path + tempList[i]);
          ????? }
          ????? else
          ????? {
          ??????? temp = new File(path + File.separator + tempList[i]);
          ????? }
          ????? if (temp.isFile())
          ????? {
          ??????? temp.delete();
          ????? }
          ????? if (temp.isDirectory())
          ????? {
          ??????? delAllFile(path+"/"+ tempList[i]);//先刪除文件夾里面的文件
          ??????? delFolder(path+"/"+ tempList[i]);//再刪除空文件夾
          ????? }
          ??? }
          ????????? System.out.println("刪除文件操作 成功執行");?
          ? }
          ?
          ? /**
          ?? * 復制單個文件
          ?? * @param oldPath String 原文件路徑 如:c:/fqf.txt
          ?? * @param newPath String 復制后路徑 如:f:/fqf.txt
          ?? */
          ? public void copyFile(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();
          ????? }
          ??????????? System.out.println("刪除文件夾操作 成功執行");?
          ??? }
          ??? catch (Exception e) {
          ????? System.out.println("復制單個文件操作出錯");
          ????? e.printStackTrace();
          ?
          ??? }
          ?
          ? }
          ?
          ? /**
          ?? * 復制整個文件夾內容
          ?? * @param oldPath String 原文件路徑 如:c:/fqf
          ?? * @param newPath String 復制后路徑 如:f:/fqf/ff
          ?? */
          ? public void copyFolder(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())
          ??????? {//如果是子文件夾
          ????????? copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
          ??????? }
          ????? }
          ??????????? System.out.println("復制文件夾操作 成功執行");?
          ??? }
          ??? catch (Exception e) {
          ????? System.out.println("復制整個文件夾內容操作出錯");
          ????? e.printStackTrace();
          ?
          ??? }
          ?
          ? }
          ?
          ? /**
          ?? * 移動文件到指定目錄
          ?? * @param oldPath String 如:c:/fqf.txt
          ?? * @param newPath String 如:d:/fqf.txt
          ?? */
          ? public void moveFile(String oldPath, String newPath) {
          ??? copyFile(oldPath, newPath);
          ??? delFile(oldPath);
          ?
          ? }
          ?
          ? /**
          ?? * 移動文件到指定目錄
          ?? * @param oldPath String 如:c:/fqf.txt
          ?? * @param newPath String 如:d:/fqf.txt
          ?? */
          ? public void moveFolder(String oldPath, String newPath) {
          ??? copyFolder(oldPath, newPath);
          ??? delFolder(oldPath);
          ?
          ? }
          ?
          ? public static void main(String args[])
          ? {
          ? ?System.out.println("使用此功能請按[1]? 功能一:新建目錄");
          ? ?System.out.println("使用此功能請按[2]? 功能二:新建文件");
          ? ?System.out.println("使用此功能請按[3]? 功能三:刪除文件");
          ? ?System.out.println("使用此功能請按[4]? 功能四:刪除文件夾");
          ? ?System.out.println("使用此功能請按[5]? 功能五:刪除文件夾里面的所有文件");
          ? ?System.out.println("使用此功能請按[6]? 功能六:復制文件");
          ? ?System.out.println("使用此功能請按[7]? 功能七:復制文件夾的所有內容");
          ? ?System.out.println("使用此功能請按[8]? 功能八:移動文件到指定目錄");
          ? ?System.out.println("使用此功能請按[9]? 功能九:移動文件夾到指定目錄");
          ? ?System.out.println("使用此功能請按[10] 退出程序");
          ? ?
          ?while(!exitnow)
          ?{
          ? ??FileOperate fo=new FileOperate();
          ? ??try
          ? ??{
          ? ??BufferedReader Bin=new BufferedReader(new InputStreamReader(System.in));
          ? ??String a=Bin.readLine();
          ? ??int b=Integer.parseInt(a);
          ? ??
          ? ??switch(b)
          ? ??{
          ? ???case 1:System.out.println("你選擇了功能一? 請輸入目錄名");??
          ? ????? aa=Bin.readLine();
          ? ????? fo.newFolder(aa);
          ? ????? break;
          ? ???case 2:System.out.println("你選擇了功能二? 請輸入文件名");??
          ? ????? aa=Bin.readLine();
          ? ????? System.out.println("請輸入在"+aa+"中的內容");
          ? ????? bb=Bin.readLine();
          ? ????? fo.newFile(aa,bb);
          ? ????? break;
          ? ???case 3:System.out.println("你選擇了功能三? 請輸入文件名");??
          ? ????? aa=Bin.readLine();
          ? ????? fo.delFile(aa);
          ? ????? break;
          ? ???case 4:System.out.println("你選擇了功能四? 請輸入文件名");??
          ? ????? aa=Bin.readLine();
          ? ????? fo.delFolder(aa);
          ? ????? break;
          ? ???case 5:System.out.println("你選擇了功能五? 請輸入文件名");??
          ? ????? aa=Bin.readLine();
          ? ????? fo.delAllFile(aa);
          ? ????? break;??
          ? ???case 6:System.out.println("你選擇了功能六? 請輸入文件名");??
          ? ????? aa=Bin.readLine();
          ? ????? System.out.println("請輸入目標文件名");?
          ? ????? bb=Bin.readLine();
          ? ????? fo.copyFile(aa,bb);
          ? ????? break;
          ? ???case 7:System.out.println("你選擇了功能七? 請輸入源文件名");??
          ? ????? aa=Bin.readLine();
          ? ????? System.out.println("請輸入目標文件名");?
          ? ????? bb=Bin.readLine();
          ? ????? fo.copyFolder(aa,bb);
          ? ????? break;? ?????
          ? ???case 8:System.out.println("你選擇了功能八? 請輸入源文件名");??
          ? ????? aa=Bin.readLine();
          ? ????? System.out.println("請輸入目標文件名");?
          ? ????? bb=Bin.readLine();
          ? ????? fo.moveFile(aa,bb);
          ? ????? break;
          ? ??? ?case 9:System.out.println("你選擇了功能九? 請輸入源文件名");??
          ? ????? aa=Bin.readLine();
          ? ????? System.out.println("請輸入目標文件名");?
          ? ????? bb=Bin.readLine();
          ? ????? fo.moveFolder(aa,bb);
          ? ????? break;? ?????
          ? ???case 10:exitnow=true;
          ? ?????? System.out.println("程序結束,請退出");
          ? ????? break;
          ? ???default:System.out.println("輸入錯誤.請輸入1-10之間的數");?? ???? ????? ?
          ? ?? }
          ? ??
          ? ??
          ? ??System.out.println("請重新選擇功能");
          ? ??
          ? ??
          ? ??}
          ? ??catch(Exception e)
          ? ??{
          ? ??System.out.println("輸入錯誤字符或程序出錯");
          ? ??}
          ? ??
          ?}? ?
          ?}
          }


          FileOperate.JPG





          http://www.aygfsteel.com/Files/yangcai/FileOperate_java.rar
          posted on 2007-01-28 22:22 楊彩 閱讀(1280) 評論(5)  編輯  收藏 所屬分類: 我的Java程序

          FeedBack:
          # re: 文件的所有操作
          2007-01-29 11:28 | samfree[匿名]
          好東東阿,收藏了。  回復  更多評論
            
          # re: 文件的所有操作
          2007-01-29 13:01 | zhyiwww
          挺全面,不錯。  回復  更多評論
            
          # re: 文件的所有操作
          2007-01-29 13:11 | BeanSoft
          支持原創!  回復  更多評論
            
          # re: 文件的所有操作
          2007-01-30 18:56 | aa
          簡單瞄了一下,新建目錄時,如果用mkdirs()不是更好,mkdir()只是新建一個目錄,mkdirs()可創建目錄樹。^_^  回復  更多評論
            
          # re: 文件的所有操作[未登錄]
          2007-03-24 12:06 | dd
          user1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gifuser1/3/upload/20073244104.gif
          標題
            回復  更多評論
            
          主站蜘蛛池模板: 阳东县| 昌图县| 甘南县| 全椒县| 麟游县| 盈江县| 璧山县| 筠连县| 花莲县| 临江市| 永吉县| 鸡东县| 扎鲁特旗| 蒲江县| 莒南县| 邢台县| 沙洋县| 长治市| 正阳县| 内乡县| 青浦区| 柯坪县| 大渡口区| 苗栗县| 龙川县| 张家港市| 香港 | 资阳市| 榕江县| 上栗县| 安塞县| 西畴县| 靖江市| 茶陵县| 册亨县| 张家川| 桐城市| 横峰县| 岳阳县| 滨海县| 来安县|