import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class FileCommon extends CommonUtil
{
/**
* 新建文件
* @param filePathAndName String 文件路径及名称 如c:/fqf.txt
* @param fileContent String 文件内容
* @return boolean
*/
public void newFile(String filePathAndName, String fileContent)
{
FileWriter resultFile = null;
try
{
String filePath = filePathAndName;
filePath = filePath.toString();
File myFilePath = new File(filePath);
if (!myFilePath.exists())
{
myFilePath.createNewFile();
}
resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
String strContent = fileContent;
myFile.println(strContent);
}
catch (Exception e)
{
Log.getLogger().error("new File exception: ", e);
}
finally
{
try
{
resultFile.close();
}
catch (IOException e)
{
}
}
}
/**
* 删除文件
* @param filePathAndName String 文件路径及名称 如c:/fqf.txt
* @param fileContent String
* @return boolean
*/
public void delFile(String filePathAndName)
{
try
{
File myDelFile = new File(filePathAndName);
myDelFile.delete();
}
catch (Exception e)
{
Log.getLogger().error("delete File exception: ", e);
}
}
/**
* 创建多级目录文件夹
* @param mkdirName
*/
public void newFolder(String mkdirName)
{
try
{
File dirFile = new File(mkdirName);
boolean bFile = dirFile.exists();
if (!bFile)
{
bFile = dirFile.mkdirs();
if (bFile == true)
{
Log.getLogger().info("Create '" + mkdirName + "' folder successfully!");
}
else
{
Log.getLogger().info("Disable to make '" + mkdirName
+ "' the folder,please check the disk is full or not.");
System.exit(1);
}
}
else
{
Log.getLogger().info("The folder '" + mkdirName + "' is exists!");
}
}
catch (Exception e)
{
Log.getLogger().error("create folder exception", e);
}
}
/**
* 删除多级目录文件夹
* @param[in] sPath 目录
*/
public void delFolder(String sPath)
{
File oPath = new File(sPath);
if (!oPath.exists() || !oPath.isDirectory())
{
return;
}
deleteFolder(oPath);
}
/**
* 嵌套删除多级目录
* @param[in] oPath 目录
*/
private void deleteFolder(File oPath)
{
final File[] dirs = oPath.listFiles();
if (dirs != null)
{
for (final File oSubPath : dirs)
{
if (oSubPath.isDirectory())
{
deleteFolder(oSubPath);
}
}
String[] fileList = oPath.list();
File file = null;
for (final String fileName : fileList)
{
file = new File(oPath.getPath() + File.separator + fileName);
if (file.isFile())
{
file.delete();
}
}
}
oPath.delete();
}
/**
* 复制单个文件
* @param oldPath String 原文件路径 如:c:/fqf.txt
* @param newPath String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath)
{
FileInputStream fis = null;
FileOutputStream fos = null;
try
{
int byteread = 0;
File oldfile = new File(oldPath);
// 文件存在时
if (oldfile.exists())
{
// 读入原文件
fis = new FileInputStream(oldPath);
fos = new FileOutputStream(newPath);
byte[] buffer = new byte[1024];
while ((byteread = fis.read(buffer)) != -1)
{
fos.write(buffer, 0, byteread);
}
}
}
catch (Exception e)
{
Log.getLogger().error("copy File exception", e);
}
finally
{
try
{
fis.close();
fis.close();
}
catch (IOException e)
{
}
}
}
/**
* 复制整个文件夹内容
* @param oldPath String 原文件路径 如:c:/fqf
* @param newPath String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
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 = 0;
while ((len = input.read(b)) != -1)
{
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
// 如果是子文件夹
if (temp.isDirectory())
{
Log.getLogger().info("copyFolder: " + oldPath + "/" + file[i] + " newPath: " + newPath + "/"
+ file[i]);
copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]);
}
}
}
catch (Exception e)
{
Log.getLogger().error("copy Folder exception: ", e);
}
}
/**
* 移动文件到指定目录
* @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)
{
FileCommon f = new FileCommon();
f.newFolder("e:/test/src/");
f.newFile("e:/txt.txt", "aaaaaaaaaaaa");
f.copyFile("e:/txt.txt", "e:/test/src/txt.txt");
f.moveFile("e:/txt.txt", "e:/test/src/txt.txt");
f.copyFolder("e:/test", "e:/a");
f.moveFolder("e:/test", "e:/a");
f.delFolder("E:/test");
f.delFile("e:/txt.txt");
f.delFolder("e:/a");
}
}
分享到:
相关推荐
- 创建一个名为`Filecommon`的工具类,封装文件读写逻辑,提高代码的复用性和可维护性。 优秀的程序设计应遵循以下原则: - 简洁优雅的代码结构,遵循SOLID原则。 - 充分考虑异常情况和错误处理,例如文件不存在、...
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代
内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
系统可以提供信息显示和相应服务,其管理新冠抗原自测平台小程序信息,查看新冠抗原自测平台小程序信息,管理新冠抗原自测平台小程序。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
新建 文本文档.docx
hw06
3. Kafka入门-安装与基本命令
燃气管道施工资质和特种设备安装改造维修委托函.docx
AI大模型研究相关报告
lab02
仅供学习使用,其他用途请购买正版资源AVPro Video Core Windows Edition 2.2.3 亲测可用的视频播放插件,能丝滑播放透明视频等.
建设工程消防验收现场指导意见表.docx
MVIMG_20241222_194113.jpg
五相电机双闭环矢量控制模型_采用邻近四矢量SVPWM_MATLAB_Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成; (2)输出部分仿真波形及仿真说明文档; (3)完整版仿真模型:包括邻近四矢量SVPWM模型和完整双闭环矢量控制Simulink模型; 资料介绍过程十分详细,零基础手把手教学,资料已经写的很清楚
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;