import java.io.File;
import java.sql.Date;
import java.util.Calendar;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
//如果文件存在,则追加内容;如果文件不存在,则创建文件,追加内容的三种方法
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class IncrementPackage {
protected static Log logger = LogFactory.getLog(IncrementPackage.class);
/*UltraEdit中删除含有/不含有特定内容的行 //classes
如某文件中有些行含有特定内容test
1. UltraEdit中删除含有特定内容的行
a. 按ctrl+r,使用“替换”功能,勾选正则表达式,引擎默认UltraEdit,“替换”内容为“ %*classes*^p ”,“替换为”为空;
^p 是 DOS 文件类型的换行符。如果是 Unix 类型文件,则用 ^n.
b. 删除空行,使用“替换”功能,“替换”内容为“^r^n^r^n”,“替换为”为“^r^n”;
2. UltraEdit中如何删除不含有特定内容的行
a. 按ctrl+f,使用“搜索”功能,勾选“列出包含字符串的行”,“搜索”内容为“test”;点击全部统计,点击下一个
b. 在搜索结果中选择所有,选择“拷贝到粘贴板”;
c. 新建一空白文件,然后ctrl+v粘贴。*/
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
// 近N天
cal.add(Calendar.DATE, -30);
// 修改近N天修改过的文件名称及路径
getIncrementFile("D:\\0_ul\\workspaceEclipse4.3\\bdkm", new Date(cal.getTimeInMillis()));
}
/**
* 获取path路径下面date日期之后修改过的文件名称
* @param path 路径
* @param date 截止日期
*/
public static void getIncrementFile(String path, Date date) {
// 根据给定路径构造文件目录
File filePath = new File(path);
// 若指定的文件路径不存在,或文件夹下面没有文件,直接返回
if (!filePath.exists() || filePath.listFiles().length <= 0) return;
// 获取文件目录下面的所有文件
File[] files = filePath.listFiles();
// 定义最后修改时间变量
Date lastModifiedTime;
// 遍历文件集合
for (File file : files) {
// 若该file为文件的话
if (file.isFile()) {
// 将文件之后修改时间取出
lastModifiedTime = new Date(file.lastModified());
// 同指定的截止时间比较,若修改修改时间晚于截止时间
if (lastModifiedTime.after(date)) {
if(file.getAbsolutePath().indexOf(".class")!=-1){
method3("D:\\0a_dd_class.txt", file.getAbsolutePath());
}
if(file.getAbsolutePath().indexOf("classes")!=-1){
continue;
}
if(file.getAbsolutePath().indexOf(".project")!=-1){
continue;
}
if(file.getAbsolutePath().indexOf(".settings")!=-1){
continue;
}
if(file.getAbsolutePath().indexOf(".classpath")!=-1){
continue;
}
if(file.getAbsolutePath().indexOf(".svn")!=-1){
continue;
}
if(file.getAbsolutePath().indexOf("bigdata.log")!=-1){
continue;
}
/*a.method1();
a.method2("E:\\dd.txt", "222222222222222");
a.method3("E:\\dd.txt", "33333333333");*/
// 输出文件路径及最后修改时间
//logger.info("______ getIncrementFile _____________"+file.getAbsolutePath() + " " + lastModifiedTime);
//method3("D:\\0a_dd.txt", file.getAbsolutePath() + " " + lastModifiedTime);
method3("D:\\0a_dd.txt", file.getAbsolutePath());
}
}
// 做该file是目录的话
else if (file.isDirectory()) {
// 递归调用getIncrementFile 方法
getIncrementFile(file.getAbsolutePath(), date);
}
}
}
public void method1() {
FileWriter fw = null;
try {
//如果文件存在,则追加内容;如果文件不存在,则创建文件
File f=new File("E:\\dd.txt");
fw = new FileWriter(f, true);
} catch (IOException e) {
e.printStackTrace();
}
PrintWriter pw = new PrintWriter(fw);
pw.println("追加内容");
pw.flush();
try {
fw.flush();
pw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void method2(String file, String conent) {
BufferedWriter out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file, true)));
out.write(conent+"\r\n");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void method3(String fileName, String content) {
try {
// 打开一个随机访问文件流,按读写方式
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
// 文件长度,字节数
long fileLength = randomFile.length();
// 将写文件指针移到文件尾。
randomFile.seek(fileLength);
randomFile.writeBytes(content+"\r\n");
randomFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
当项目要上线时,却不知道新增的功能涉及哪些文件,跑一下这个工具类吧
最新推荐文章于 2022-03-25 17:42:42 发布