《JAVA文件操作类和文件夹的操作.pdf》由会员分享,可在线阅读,更多相关《JAVA文件操作类和文件夹的操作.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JAVA 文件操作类和文件夹的操作 package com.gamva n.tools;import java.io.BufferedReader;import java.io.File;import java.io.FileI nputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.i o.IO Excepti on;import java.io.In putStream;import java.i o.ln putStreamReader;import java.io.Prin tWr
2、iter;import java.util.Stri ngToke ni zer;public class FileOperate private String message;public FileOperate()/*读取文本文件内容*param filePathA ndName带有完整绝对路径的文件名*param en codi ng文本文件翻开的编码方式*retur n 返回文本文件的内容*/public String readTxt(String filePathAndName,String encoding)OExcepti onen codi ng=en codi ng.trim
3、();StringBuffer str=new StringBuffer();String st=;try FilelnputStream fs=new FilelnputStream(filePathAndName);In putStreamReader isr;if(en codi ng.equals()isr=new InputStreamReader(fs);throws I else isr=BufferedReader br=try String data=;while(data=br.readLine()!=str.appe nd(data+);catch(Exception e
4、)str.appe nd(e.toStri ng();st=str.toStri ng();catch(IOException es)*/public String createFolder(String folderPath)新建目录param folderPath 目录return返回目录创立后的路径null)new BufferedReader(isr);new InputStreamReader(fs,encoding);Stri ng txt=folderPath;try java.io.File myFilePath=new java.io.File(txt);txt=folder
5、Path;if(!myFilePath.exists()myFilePath.mkdir();catch(Exception e)message=创立目录操作出错;return txt;*多级目录创立*param folderPath准备要在本级目录下创立新目录的目录路径*param paths 无限级目录参数,各级目录以单数线区分例如*return返回创立文件后的路径例如 c:myfa c*/public String createFolders(String folderPath,String paths)Stri ng txts=folderPath;try String txt;txt
6、s=folderPath;Str in gToke ni zer st=new Strin gToke ni zer(paths,|);for(int i=0;st.hasMoreTokens();i+)txt=st.nextToke n().trim();if(txts.last In dexOf(/)!=-1)txts=createFolder(txts+txt);例如 c:myfa|b|c else txts=createFolder(txts+txt+/);catch(Exception e)message=return txts;*新建文件*param filePathA ndNam
7、e*/public void createFile(String filePathAndName,String fileContent)param fileCo nte ntreturn创立目录操作出错!文本文件完整绝对路径及文件名文本文件内容try String filePath=filePathAndName;filePath=filePath.toStri ng();File myFilePath=new File(filePath);if(!myFilePath.exists()myFilePath.createNewFile();FileWriter resultFile=Print
8、Writer myFile=new FileWriter(myFilePath);new PrintWriter(resultFile);Stri ng strC ontent=fileC ontent;myFile.pri ntl n(strC on te nt);message=创立文件操作出错*有编码方式的文件创立*/public void createFile(String filePathAndName,String fileContent.String en codi ng)param filePathA ndNameparam fileCo nte ntparam encodin
9、greturn文本文件完整绝对路径及文件名文本文件内容编码方式例如 GBK 或者 UTF-8try String filePath=filePathAndName;filePath=filePath.toStri ng();File myFilePath=new File(filePath);if(!myFilePath.exists()myFilePath.createNewFile();PrintWriter myFile=new PrintWriter(myFilePath,encoding);Stri ng strC ontent=fileC ontent;myFile.pri ntl
10、 n(strC on te nt);myFile.close();catch(Exception e)message=创立文件操作出错*删除文件*param filePathA ndName文本文件完整绝对路径及文件名return Boolean 成功删除返回 true 遭遇异常返回 false*/public boolean delFile(String filePathAndName)boolean bea=false;try String filePath=filePathAndName;File myDelFile=new File(filePath);if(myDelFile.exi
11、sts()myDelFile.delete();删除文件操作出错);catch(Exception e)message=e.toStri ng();return bea;*删除文件夹*param folderPath*/public void delFolder(String folderPath)try delAIIFile(folderPath);String filePath=folderPath;filePath=filePath.toStri ng();java.io.File myFilePath=myFilePath.delete();catch(Exception e)mess
12、age=(删除文件夹操作出错);new java.io.File(filePath);/删除空文件夹/删除完里面所有内容return文件夹完整绝对路径*删除指定文件夹下所有文件*/public boolean delAIIFile(String path)param path 文件夹完整绝对路径returnreturnboolean bea=false;File file=new File(path);if(!file.exists()return bea;if(!file.isDirectory()return bea;Strin g tempList=file.list();File te
13、mp=null;for(int i=0;i tempList.length;i+)if(path.e ndsWith(File.separator)temp=new File(path+tempListi);else temp=new File(path+File.separator+tempListi);if(temp.isFile()temp.delete();if(temp.isDirectory()delAIIFile(path+/+tempListi);delFolder(path+/+tempListi);bea=true;return bea;/先删除文件夹里面的文件/再删除空文
14、件夹/*复制单个文件*param oldPathFile准备复制的文件源*param n ewPathFile拷贝到新绝对路径带文件名*return*/public void copyFile(String oldPathFile,String newPathFile)try int bytesum=0;int byteread=0;File oldfile=new File(oldPathFile);if(oldfile.exists()/文件存在时In putStream in Stream=new FileI nputStream(oldPathFile);读入原文件FileOutput
15、Stream fs=new FileOutputStream(newPathFile);byte buffer=new byte 1444;while(byteread=inStream.read(buffer)!=-1)bytesum+=byteread;/字节数 文件大小System.out.pri ntl n(bytesum);fs.write(buffer,0,byteread);message=复制单个文件操作出错;/*复制整个文件夹的内容*param oldPath 准备拷贝的目录*param n ewPath指定绝对路径的新目录*return*/public void copyF
16、older(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 fileength;i+)if(oldPath.e ndsWith(File.separator)temp=else temp=if(temp.isFile()FileI nputStream in put=FileOutputStream output=h+/+(temp.ge
17、tName().toStri ng();byte b=new byte 1024*5;int len;while(len=input.read(b)!=-1)output.write(b,0,le n);output.flush();output.close();in put.close();if(temp.isDirectory()/如果是子文件夹copyFolder(oldPath+/+filei,newPath+/+filei);catch(Exception e)message=复制整个文件夹内容操作出错;new FileI nputStream(temp);new FileOutpu
18、tStream(newPatnew File(oldPath+File.separator+filei);new File(oldPath+filei);*移动文件*/public void moveFile(String oldPath,String newPath)copyFile(oldPath,n ewPath);delFile(oldPath);*移动目录*param oldPath*/public void moveFolder(String oldPath,String newPath)copyFolder(oldPath,n ewPath);delFolder(oldPath);public String getMessage()return this.message;param n ewPathreturnparam oldPathparam n ewPathreturn