隨筆 - 303  文章 - 883  trackbacks - 0
          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          歡迎光臨! 
          閑聊 QQ:1074961813

          隨筆分類(357)

          我管理的群

          公共blog

          • n維空間
          • Email : java3d@126.com 群 : 12999758

          參與管理的論壇

          好友的blog

          我的其他blog

          朋友的網(wǎng)站

          搜索

          •  

          最新評論

          import java.io.BufferedReader;
          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileOutputStream;
          import java.io.FileWriter;
          import java.io.IOException;
          import java.io.InputStream;
          import java.io.InputStreamReader;
          import java.io.PrintWriter;
          import java.util.StringTokenizer;
          public class FileOperate {
          ??? private String message;
          ??? public FileOperate() {
          ??? }

          ??? /**
          ???? * 讀取文本文件內(nèi)容
          ???? * @param filePathAndName 帶有完整絕對路徑的文件名
          ???? * @param encoding 文本文件打開的編碼方式
          ???? * @return 返回文本文件的內(nèi)容
          ???? */

          ??? public String readTxt(String filePathAndName,String encoding) throws IOException{
          ??? ?encoding = encoding.trim();
          ??? ?StringBuffer str = new StringBuffer("");
          ??? ?String st = "";
          ??? ?try{
          ???? ?FileInputStream fs = new FileInputStream(filePathAndName);
          ???? ?InputStreamReader isr;
          ???? ?if(encoding.equals("")){
          ???? ??isr = new InputStreamReader(fs);
          ???? ?}else{
          ???? ??isr = new InputStreamReader(fs,encoding);
          ???? ?}
          ???? ?BufferedReader br = new BufferedReader(isr);
          ???? ?try{
          ???? ??String data = "";
          ???? ??while((data = br.readLine())!=null){
          ???? ????str.append(data+" ");
          ???? ??}
          ???? ?}catch(Exception e){
          ???? ??str.append(e.toString());
          ???? ?}
          ???? ?st = str.toString();
          ??? ?}catch(IOException es){
          ??? ??st = "";
          ??? ?}
          ??? ?return st;??? ?
          ??? }

          ??? /**
          ???? * 新建目錄
          ???? * @param folderPath 目錄
          ???? * @return 返回目錄創(chuàng)建后的路徑
          ???? */

          ??? public String createFolder(String folderPath) {
          ??????? String txt = folderPath;
          ??????? try {
          ??????????? java.io.File myFilePath = new java.io.File(txt);
          ??????????? txt = folderPath;
          ??????????? if (!myFilePath.exists()) {
          ??????????????? myFilePath.mkdir();
          ??????????? }
          ??????? }
          ??????? catch (Exception e) {
          ??????????? message = "創(chuàng)建目錄操作出錯";
          ??????? }
          ??????? return txt;
          ??? }
          ???
          ??? /**
          ???? * 多級目錄創(chuàng)建
          ???? * @param folderPath 準備要在本級目錄下創(chuàng)建新目錄的目錄路徑 例如 c:myf
          ???? * @param paths 無限級目錄參數(shù),各級目錄以單數(shù)線區(qū)分 例如 a|b|c
          ???? * @return 返回創(chuàng)建文件后的路徑 例如 c:myfac
          ???? */

          ??? public String createFolders(String folderPath, String paths){
          ??????? String txts = folderPath;
          ??????? try{
          ??????????? String txt;
          ??????????? txts = folderPath;
          ??????????? StringTokenizer st = new StringTokenizer(paths,"|");
          ??????????? for(int i=0; st.hasMoreTokens(); i++){
          ??????????????????? txt = st.nextToken().trim();
          ??????????????????? if(txts.lastIndexOf("/")!=-1){
          ??????????????????????? txts = createFolder(txts+txt);
          ??????????????????? }else{
          ??????????????????????? txts = createFolder(txts+txt+"/");???
          ??????????????????? }
          ??????????? }
          ?????? }catch(Exception e){
          ?????????? message = "創(chuàng)建目錄操作出錯!";
          ?????? }
          ??????? return txts;
          ??? }

          ???
          ??? /**
          ???? * 新建文件
          ???? * @param filePathAndName 文本文件完整絕對路徑及文件名
          ???? * @param fileContent 文本文件內(nèi)容
          ???? * @return
          ???? */

          ??? public void createFile(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);
          ??????????? myFile.close();
          ??????????? resultFile.close();
          ??????? }
          ??????? catch (Exception e) {
          ??????????? message = "創(chuàng)建文件操作出錯";
          ??????? }
          ??? }


          ??? /**
          ???? * 有編碼方式的文件創(chuàng)建
          ???? * @param filePathAndName 文本文件完整絕對路徑及文件名
          ???? * @param fileContent 文本文件內(nèi)容
          ???? * @param encoding 編碼方式 例如 GBK 或者 UTF-8
          ???? * @return
          ???? */

          ??? public void createFile(String filePathAndName, String fileContent, String encoding) {
          ??? ?
          ??????? try {
          ??????????? String filePath = filePathAndName;
          ??????????? filePath = filePath.toString();
          ??????????? File myFilePath = new File(filePath);
          ??????????? if (!myFilePath.exists()) {
          ??????????????? myFilePath.createNewFile();
          ??????????? }
          ??????????? PrintWriter myFile = new PrintWriter(myFilePath,encoding);
          ??????????? String strContent = fileContent;
          ??????????? myFile.println(strContent);
          ??????????? myFile.close();
          ??????? }
          ??????? catch (Exception e) {
          ??????????? message = "創(chuàng)建文件操作出錯";
          ??????? }
          ??? }


          ??? /**
          ???? * 刪除文件
          ???? * @param filePathAndName 文本文件完整絕對路徑及文件名
          ???? * @return Boolean 成功刪除返回true遭遇異常返回false
          ???? */

          ??? public boolean delFile(String filePathAndName) {
          ??? ?boolean bea = false;
          ??????? try {
          ??????????? String filePath = filePathAndName;
          ??????????? File myDelFile = new File(filePath);
          ??????????? if(myDelFile.exists()){
          ??????????? ?myDelFile.delete();
          ??????????? ?bea = true;
          ??????????? }else{
          ??????????? ?bea = false;
          ??????????? ?message = (filePathAndName+"
          刪除文件操作出錯");
          ??????????? }
          ??????? }
          ??????? catch (Exception e) {
          ??????????? message = e.toString();
          ??????? }
          ??????? return bea;
          ??? }
          ???


          ??? /**
          ???? * 刪除文件夾
          ???? * @param folderPath 文件夾完整絕對路徑
          ???? * @return
          ???? */

          ??? public void delFolder(String folderPath) {
          ??????? try {
          ??????????? delAllFile(folderPath); //刪除完里面所有內(nèi)容
          ??????????? String filePath = folderPath;
          ??????????? filePath = filePath.toString();
          ??????????? java.io.File myFilePath = new java.io.File(filePath);
          ??????????? myFilePath.delete(); //刪除空文件夾
          ??????? }
          ??????? catch (Exception e) {
          ??????????? message = ("刪除文件夾操作出錯");
          ??????? }
          ??? }
          ???
          ???
          ??? /**
          ???? * 刪除指定文件夾下所有文件
          ???? * @param path 文件夾完整絕對路徑
          ???? * @return
          ???? * @return
          ???? */

          ??? public boolean delAllFile(String path) {
          ??? ?boolean bea = false;
          ??????? File file = new File(path);
          ??????? if (!file.exists()) {
          ??????????? return bea;
          ??????? }
          ??????? if (!file.isDirectory()) {
          ??????????? return bea;
          ??????? }
          ??????? 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]);//再刪除空文件夾
          ??????????????? bea = true;
          ??????????? }
          ??????? }
          ??????? return bea;
          ??? }


          ??? /**
          ???? * 復(fù)制單個文件
          ???? * @param oldPathFile 準備復(fù)制的文件源
          ???? * @param newPathFile 拷貝到新絕對路徑帶文件名
          ???? * @return
          ???? */

          ??? public void copyFile(String oldPathFile, String newPathFile) {
          ??????? try {
          ??????????? int bytesum = 0;
          ??????????? int byteread = 0;
          ??????????? File oldfile = new File(oldPathFile);
          ??????????? if (oldfile.exists()) { //文件存在時
          ??????????????? InputStream inStream = new FileInputStream(oldPathFile); //讀入原文件
          ??????????????? FileOutputStream fs = new FileOutputStream(newPathFile);
          ??????????????? byte[] buffer = new byte[1444];
          ??????????????? while((byteread = inStream.read(buffer)) != -1){
          ??????????????????? bytesum += byteread; //字節(jié)數(shù) 文件大小
          ??????????????????? System.out.println(bytesum);
          ??????????????????? fs.write(buffer, 0, byteread);
          ??????????????? }
          ??????????????? inStream.close();
          ??????????? }
          ??????? }catch (Exception e) {
          ??????????? message = ("復(fù)制單個文件操作出錯");
          ??????? }
          ??? }
          ???

          ??? /**
          ???? * 復(fù)制整個文件夾的內(nèi)容
          ???? * @param oldPath 準備拷貝的目錄
          ???? * @param newPath 指定絕對路徑的新目錄
          ???? * @return
          ???? */

          ??? 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]);
          ??????????????? }
          ??????????? }
          ??????? }catch (Exception e) {
          ??????????? message = "復(fù)制整個文件夾內(nèi)容操作出錯";
          ??????? }
          ??? }


          ??? /**
          ???? * 移動文件
          ???? * @param oldPath
          ???? * @param newPath
          ???? * @return
          ???? */

          ??? public void moveFile(String oldPath, String newPath) {
          ??????? copyFile(oldPath, newPath);
          ??????? delFile(oldPath);
          ??? }
          ???

          ??? /**
          ???? * 移動目錄
          ???? * @param oldPath
          ???? * @param newPath
          ???? * @return
          ???? */

          ??? public void moveFolder(String oldPath, String newPath) {
          ??????? copyFolder(oldPath, newPath);
          ??????? delFolder(oldPath);
          ??? }
          ??? public String getMessage(){
          ??????? return this.message;
          ??? }
          }



          地震讓大伙知道:居安思危,才是生存之道。
          posted on 2007-03-06 22:00 小尋 閱讀(1115) 評論(1)  編輯  收藏 所屬分類: j2se/j2ee/j2me

          FeedBack:
          # re: [轉(zhuǎn)]全面文件操作java代碼 2009-01-05 17:53 wgc
          不錯,蠻全的,贊個  回復(fù)  更多評論
            
          主站蜘蛛池模板: 岑溪市| 南漳县| 古田县| 北流市| 禹州市| 安国市| 新沂市| 莱西市| 宜宾市| 巴东县| 临武县| 南靖县| 定襄县| 柞水县| 泗阳县| 东光县| 慈利县| 股票| 贵德县| 绥滨县| 德江县| 逊克县| 布拖县| 宕昌县| 永和县| 德兴市| 昌都县| 正宁县| 于田县| 河津市| 额济纳旗| 旌德县| 全州县| 永兴县| 栖霞市| 四子王旗| 建阳市| 葵青区| 六盘水市| 安义县| 卢龙县|