java文件操作和_JAVA文件操作类和文件夹的操作(转帖)

本文介绍了一个实用的Java文件操作工具类,包括文件和文件夹的创建、删除、复制和移动等功能,并提供了详细的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

packagecom.gamvan.tools;

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.InputStreamReader;

importjava.io.PrintWriter;

importjava.util.StringTokenizer;

publicclassFileOperate {

privateString message;

publicFileOperate() {

}

/**

* 读取文本文件内容

* @param filePathAndName 带有完整绝对路径的文件名

* @param encoding 文本文件打开的编码方式

* @return 返回文本文件的内容

*/

publicString readTxt(String filePathAndName,String encoding)throwsIOException{

encoding = encoding.trim();

StringBuffer str =newStringBuffer("");

String st ="";

try{

FileInputStream fs =newFileInputStream(filePathAndName);

InputStreamReader isr;

if(encoding.equals("")){

isr =newInputStreamReader(fs);

}else{

isr =newInputStreamReader(fs,encoding);

}

BufferedReader br =newBufferedReader(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 ="";

}

returnst;

}

/**

* 新建目录

* @param folderPath 目录

* @return 返回目录创建后的路径

*/

publicString createFolder(String folderPath) {

String txt = folderPath;

try{

java.io.File myFilePath =newjava.io.File(txt);

txt = folderPath;

if(!myFilePath.exists()) {

myFilePath.mkdir();

}

}

catch(Exception e) {

message ="创建目录操作出错";

}

returntxt;

}

/**

* 多级目录创建

* @param folderPath 准备要在本级目录下创建新目录的目录路径 例如 c:myf

* @param paths 无限级目录参数,各级目录以单数线区分 例如 a|b|c

* @return 返回创建文件后的路径 例如 c:myfac

*/

publicString createFolders(String folderPath, String paths){

String txts = folderPath;

try{

String txt;

txts = folderPath;

StringTokenizer st =newStringTokenizer(paths,"|");

for(inti=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 ="创建目录操作出错!";

}

returntxts;

}

/**

* 新建文件

* @param filePathAndName 文本文件完整绝对路径及文件名

* @param fileContent 文本文件内容

* @return

*/

publicvoidcreateFile(String filePathAndName, String fileContent) {

try{

String filePath = filePathAndName;

filePath = filePath.toString();

File myFilePath =newFile(filePath);

if(!myFilePath.exists()) {

myFilePath.createNewFile();

}

FileWriter resultFile =newFileWriter(myFilePath);

PrintWriter myFile =newPrintWriter(resultFile);

String strContent = fileContent;

myFile.println(strContent);

myFile.close();

resultFile.close();

}

catch(Exception e) {

message ="创建文件操作出错";

}

}

/**

* 有编码方式的文件创建

* @param filePathAndName 文本文件完整绝对路径及文件名

* @param fileContent 文本文件内容

* @param encoding 编码方式 例如 GBK 或者 UTF-8

* @return

*/

publicvoidcreateFile(String filePathAndName, String fileContent, String encoding) {

try{

String filePath = filePathAndName;

filePath = filePath.toString();

File myFilePath =newFile(filePath);

if(!myFilePath.exists()) {

myFilePath.createNewFile();

}

PrintWriter myFile =newPrintWriter(myFilePath,encoding);

String strContent = fileContent;

myFile.println(strContent);

myFile.close();

}

catch(Exception e) {

message ="创建文件操作出错";

}

}

/**

* 删除文件

* @param filePathAndName 文本文件完整绝对路径及文件名

* @return Boolean 成功删除返回true遭遇异常返回false

*/

publicbooleandelFile(String filePathAndName) {

booleanbea =false;

try{

String filePath = filePathAndName;

File myDelFile =newFile(filePath);

if(myDelFile.exists()){

myDelFile.delete();

bea =true;

}else{

bea =false;

message = (filePathAndName+"

删除文件操作出错");

}

}

catch(Exception e) {

message = e.toString();

}

returnbea;

}

/**

* 删除文件夹

* @param folderPath 文件夹完整绝对路径

* @return

*/

publicvoiddelFolder(String folderPath) {

try{

delAllFile(folderPath);//删除完里面所有内容

String filePath = folderPath;

filePath = filePath.toString();

java.io.File myFilePath =newjava.io.File(filePath);

myFilePath.delete();//删除空文件夹

}

catch(Exception e) {

message = ("删除文件夹操作出错");

}

}

/**

* 删除指定文件夹下所有文件

* @param path 文件夹完整绝对路径

* @return

* @return

*/

publicbooleandelAllFile(String path) {

booleanbea =false;

File file =newFile(path);

if(!file.exists()) {

returnbea;

}

if(!file.isDirectory()) {

returnbea;

}

String[] tempList = file.list();

File temp =null;

for(inti =0; i 

if(path.endsWith(File.separator)) {

temp =newFile(path + tempList[i]);

}else{

temp =newFile(path + File.separator + tempList[i]);

}

if(temp.isFile()) {

temp.delete();

}

if(temp.isDirectory()) {

delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件

delFolder(path+"/"+ tempList[i]);//再删除空文件夹

bea =true;

}

}

returnbea;

}

/**

* 复制单个文件

* @param oldPathFile 准备复制的文件源

* @param newPathFile 拷贝到新绝对路径带文件名

* @return

*/

publicvoidcopyFile(String oldPathFile, String newPathFile) {

try{

intbytesum =0;

intbyteread =0;

File oldfile =newFile(oldPathFile);

if(oldfile.exists()) {//文件存在时

InputStream inStream =newFileInputStream(oldPathFile);//读入原文件

FileOutputStream fs =newFileOutputStream(newPathFile);

byte[] buffer =newbyte[1444];

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

bytesum += byteread;//字节数 文件大小

System.out.println(bytesum);

fs.write(buffer,0, byteread);

}

inStream.close();

}

}catch(Exception e) {

message = ("复制单个文件操作出错");

}

}

/**

* 复制整个文件夹的内容

* @param oldPath 准备拷贝的目录

* @param newPath 指定绝对路径的新目录

* @return

*/

publicvoidcopyFolder(String oldPath, String newPath) {

try{

newFile(newPath).mkdirs();//如果文件夹不存在 则建立新文件夹

File a=newFile(oldPath);

String[] file=a.list();

File temp=null;

for(inti =0; i 

if(oldPath.endsWith(File.separator)){

temp=newFile(oldPath+file[i]);

}else{

temp=newFile(oldPath+File.separator+file[i]);

}

if(temp.isFile()){

FileInputStream input =newFileInputStream(temp);

FileOutputStream output =newFileOutputStream(newPath +"/"+

(temp.getName()).toString());

byte[] b =newbyte[1024*5];

intlen;

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 ="复制整个文件夹内容操作出错";

}

}

/**

* 移动文件

* @param oldPath

* @param newPath

* @return

*/

publicvoidmoveFile(String oldPath, String newPath) {

copyFile(oldPath, newPath);

delFile(oldPath);

}

/**

* 移动目录

* @param oldPath

* @param newPath

* @return

*/

publicvoidmoveFolder(String oldPath, String newPath) {

copyFolder(oldPath, newPath);

delFolder(oldPath);

}

publicString getMessage(){

returnthis.message;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值