- 浏览: 254982 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (192)
- 技术研究学习 (19)
- 工作总结 (4)
- spring3.x (11)
- mail (2)
- jar (2)
- FCKeditor (1)
- quartz (2)
- json (1)
- jdbc (5)
- struts2 (6)
- java基础 (18)
- jboss (3)
- IT名称解析 (1)
- 测试工具 (2)
- 工作趣谈 (1)
- 数据库 (8)
- js (8)
- jquery (1)
- mysql (20)
- Sql (3)
- Oracle (1)
- easyui (0)
- log4j (1)
- 源码研究 (1)
- Jasper Report (0)
- Jbpm4 (4)
- xml (1)
- ireport (0)
- javavm (1)
- sitemesh (5)
- compass (1)
- jvm (1)
- ext (1)
- lucene (0)
- cxf (1)
- Blazeds (0)
- Resteasy (1)
- jaxb (1)
- tomcat (1)
- Rmi (1)
- BoneCP (1)
- velocity (3)
- OSCache (1)
- EHCache (1)
- 高性能开发 (9)
- 设计模式 (0)
- 网络协议应用 (1)
- Ibatis (1)
- powerdesigner (1)
- 架构师之路 (2)
- memcached (4)
- MapReduce (1)
- 测试组 (1)
- 图像处理 (2)
- LoadRunner (2)
- 报表 (1)
- 负载均衡 (1)
- 分布式 (3)
- c# (1)
- java中一些特殊问题 (3)
- java 8 (1)
- Mogodb (1)
- 项目设计与实现 (2)
- Ubuntu (1)
- eclipse (1)
- gradle (1)
- 私有云 (1)
- redis (1)
- 移动前端 (1)
最新评论
来源:http://www.189works.com/article-41159-1.html
//文件监测类 import java.util.Map; import java.util.HashMap; import java.io.File; import java.util.Set; import java.util.Iterator; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.locks.Lock; public class Monitor{ private String path=null;//监控路径 private int ScanTime=0;//扫描时间间隔 private Map<String,String> FileMap=null; private TransferFile transfer; private String[] FileNames=new String[100]; private int count=0;//记录传送文件的数量 private int[] flag=new int[100]; private int n=3;//创建线程的最大数量 public static void main(String args[]) { Monitor monitor=new Monitor("D:\\temp2",1); monitor.checkFile(); } public Monitor(String path,int ScanTime) { this.path=path; this.ScanTime=ScanTime; this.FileMap=new HashMap<String,String>(); File file=new File(path); ScanFile(file,FileMap);//扫描原有目录下的文件 ShowFile();//显示文件夹下的文件内容 } public void checkFile() { File file=new File(path); ExecutorService exec = Executors.newFixedThreadPool(n);//构建线程池 while(true) { try{ Thread.sleep(1000); Map<String,String> nowFileMap=new HashMap<String,String>(); ScanFile(file,nowFileMap); int f=getAddFileMap(nowFileMap);//获得新增加的文件 if(f==1) { for(int i=0;i<count;i++) { ThreadMonitor threadMo=new ThreadMonitor(FileNames[i]); Thread t1 = new Thread(threadMo); exec.execute(t1); for(int j=i;j<count;j++)//删除处理后文件的名字 { FileNames[j]=FileNames[j+1]; } count--; } } } catch(Exception e) { e.printStackTrace(); } } } public int getAddFileMap(Map<String,String> nowFileMap) { Iterator<String> iterator=nowFileMap.keySet().iterator(); while(iterator.hasNext()) { String key=iterator.next(); if(FileMap.get(key)==null) { FileNames[count]=key; count++; FileMap.put(key, nowFileMap.get(key)); System.out.println("增加:"+nowFileMap.get(key)+count); } } if(count!=0) { return 1; } return 0; } public void ShowFile() { System.out.print(path+"文件目录如下:\n"); Set<String> set=FileMap.keySet(); Iterator<String> iterator=set.iterator();//迭代器 while(iterator.hasNext()) { System.out.println(FileMap.get(iterator.next())); } System.out.println("=============================="); } //扫描文件夹下的所有内容 public void ScanFile(File file,Map<String,String> oldFileMap) { String[] FileList=file.list(); //System.out.print(FileList[0]+"dsd"); if(FileList!=null)//文件列表不为空 { for(int i=0;i<FileList.length;i++) { String name=file.getAbsolutePath()+"\\"+FileList[i]; File tempFile=new File(name); if(tempFile.isDirectory()) { oldFileMap.put(name, "文件夹 \t"+name); ScanFile(tempFile,oldFileMap); } else { oldFileMap.put(name, "文件 \t"+name); } } } else { //System.out.print("目前文件夹中还没有文件!"); } } } class ThreadMonitor implements Runnable{ private String name=null; private TransferFile transfer; public ThreadMonitor(String name) { this.name=name; } public void run() { int flag=2; while(true) { try{ Thread.sleep(1000); transfer=new TransferFile(); flag=transfer.copyFile(this.name,"d:/abc"); if(flag==0)//代表本文件传输完毕 { break; } } catch(Exception e) { e.getStackTrace(); } } System.out.print(this.name+":"+Thread.currentThread().getName()+"运行完毕"); } } //文件转移类 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class TransferFile { private String oldpath=null; private String newpath=null; //将文件拷贝到指定的文件夹下 public int copyFile(String oldpath,String newpath) { try{ File oldFile=new File(oldpath);//获取原文件 File newFile=new File(newpath); if(!newFile.exists())//源文件夹不存在,则创建一个 { newFile.mkdir(); } int len=0; if(oldFile.exists())//如果文件存在 { FileInputStream inFile=new FileInputStream(oldpath); FileOutputStream outFile=new FileOutputStream(newpath+"/"+(oldFile.getName()).toString()); byte[] buffer=new byte[1024*10]; while((len=inFile.read(buffer))!=-1) { outFile.write(buffer, 0, len); } outFile.flush(); outFile.close(); inFile.close(); oldFile.delete();//删除备份后的原文件 } }catch(Exception e){ return -1; } return 0; } }
发表评论
-
java集合查询测试结果
2013-06-08 09:41 1168package test.com; import j ... -
对象池修订版
2013-03-08 14:09 0public class ObjectPool { ... -
深入研究java.lang.Process类
2013-03-07 12:07 880一、概述 Process ... -
深入研究java.lang.Runtime类
2013-03-07 11:54 992一、概述 Runtime ... -
JAVA图像缩放处理
2012-11-09 16:33 933import java.awt.image.Buffere ... -
oa
2012-10-19 18:03 0http://code.google.com/p/joffic ... -
Frameset导致Cookies和Session丢失的原因及解决办法
2012-09-29 11:27 75831.Frameset导致Cookies和Session丢失 ... -
java synchronized详解
2012-09-29 11:28 840来源:http://www.cnblogs.com/GnagW ... -
长连接与短连接
2012-09-29 11:29 1061来源:http://www.cnblogs.com ... -
jndi调用时,各种应用服务器InitialContext的写法
2012-09-27 11:12 966调用ejb时,如果客户端和ejb不在同一个jvm,就要 ... -
jvm字节码执行引擎
2012-08-16 12:25 1091一. 运行时栈帧结构 1. 栈帧是用于支持虚拟机进行方法调用 ... -
ClassWorking技术
2012-08-16 12:25 1393ClassWorking技术 IBM所提出的,动态地监测、修 ... -
动态加载class文件
2012-08-16 12:26 8791.参考老外: public class ClassPat ... -
quartz-scheduler的集群化配置
2012-08-13 09:33 1720由于集群只能工作在JDBC-Jobstore(JobStore ... -
dbcp连接池实现
2012-08-09 13:10 1664dbcp连接池实现commons DBCP 配置参数简要说明 ... -
常用jar包之commons-beanutils使用
2012-08-20 14:07 1486核心提示:Jakarta Commons 项目提供了相当丰富的 ... -
aop详解
2012-08-09 13:09 1356使用Spring进行面向切面 ... -
Dwr2+Struts2+Spring2.5+Hibernate3整合
2012-08-08 12:33 9821.//如果不用,启动时不会出错,但使用Dwr时,会抛出异常: ... -
AOP面向编程的使用场合
2012-08-07 20:45 988AOP(Aspect-Oriented Programming ... -
23种设计模式详解
2012-08-08 13:41 1395Java中23种设计模式 目录 1. 设计模式 3 1. ...
相关推荐
总结来说,这个项目通过ZJPFileListener和ZJPFileMonitor两个类,实现了基于Java的文件监控功能,能够实时监测文件夹中文件的状态变化,并按照设定的时间间隔进行检查。这对于需要实时跟踪文件系统变化的系统来说...
该系统的主要目标是实现环境数据的实时记录与管理,其应用场景广泛,包括但不限于大气监测、水质检测、土壤污染分析等多个环境监测领域。 系统的设计采用了当前流行的Java编程语言进行开发。Java以其跨平台、面向...
5. **jnlp** - 可能包含Java Web Start(JNLP)文件,这是一种部署Java应用程序的方式,允许用户通过Web浏览器下载并运行应用。JNLP文件描述了应用的结构、所需资源以及如何启动应用。 6. **lib** - 库文件夹,存放...
本项目是一款基于Java语言开发的水质监测服务端设计源码,它利用Java的强大功能和良好的跨平台性能,为水质监测数据的实时收集、存储、分析和管理提供了完整的软件解决方案。 Java语言因其独特的跨平台特性、高效的...
项目的源码包含了多个Java源文件,这些文件是整个数据中心运行的核心,它们定义了系统的逻辑结构、功能实现以及与外部设备的通信接口。 项目的文件结构清晰,使用了Maven进行项目管理,这一点从项目中包含的pom.xml...
在当前的信息时代,人们的生活节奏加快,面临的压力也日益增大,心理健康问题逐渐...随着技术的不断进步和用户需求的进一步发展,心理健康监测系统有望不断完善和升级,为更多用户提供更全面、更专业的心理健康服务。
对于初学者而言,通过阅读和理解这个项目的源代码,可以深入了解Java编程、数据库操作、GUI设计等多个方面的知识。同时,这个系统也可作为实际项目经验的积累,帮助提升问题解决和项目管理能力。在实际使用中,根据...
本项目是一个完整的基于Java语言的资源监测平台后端设计源码,旨在为用户提供一个高效的资源监控解决方案。整个项目由77个文件组成,其中包含了核心的Java源文件,用于实现平台的逻辑处理;XML配置文件和YAML配置...
在数据可视化方面,系统集成了多种图表库和数据展示技术,使得数据能够以图表的形式展现,包括但不限于柱状图、折线图、饼图等,这些图表能够让用户更加直观地了解水资源监测的数据变化。为了实现这些功能,系统后端...
至于"yuanma",根据上下文推测可能是源码的简写,可能指的是项目的源代码文件夹,其中包含了项目的各个模块,如业务逻辑、数据访问层、控制层等,以及相关的配置文件和资源文件。 综上所述,这个Java毕业设计项目...
`java+jquery`的文件上传技术结合了后端的Java服务器处理和前端的jQuery库来实现无刷新的用户体验,同时提供上传进度条,实时反馈文件上传状态。本文将详细讲解这个主题。 首先,让我们了解Java文件上传的基础。在...
1. **输入检测**:软件需要实时监测用户的键盘输入,与预设的文本进行比较,判断是否正确,并记录错误次数。 2. **计时器**:为测试设置时间限制,模拟实际的打字速度测试环境,增加挑战性。 3. **成绩计算**:根据...
例如,系统可能需要将多个传感器数据汇总到一个中心数据库中,然后利用Java编写的数据处理逻辑对数据进行分析,以便用户能够实时查看空气质量情况。 功能模块开发是项目的另一个关键部分。在这个项目中,至少需要...
- **描述**:SystemProfile文件夹包含了系统默认的用户配置文件信息,用于初始化新用户的环境设置。 - **可否删除**:不建议删除。如果删除,可能会影响新用户账户的创建和设置。 #### 4. **Drivers** - **描述**:...
总结,Java实现GIF动画效果需要结合窗口组件、图像处理、定时器以及可能的用户交互等多方面知识。通过不断刷新并切换图片帧,可以模拟出动态的视觉效果。在实际项目中,还可以考虑优化性能,比如预加载图片、使用...
同时,系统的前端可能还会涉及到图形用户界面(GUI)的开发,以便用户能更加直观地使用系统,进行森林病害的监测和管理。 本项目的源码展示不仅仅是对Java编程技术的应用,更是一个综合性的信息系统解决方案。它融合...
- "RainManage":这个文件名可能表示一个管理模块,可能是Java源代码文件夹,包含了处理雨量数据管理的类,如数据的增删改查操作,或者与用户交互的控制器。也可能是一个具体的Java类,负责处理雨量数据的业务逻辑。...
"基于GIS的移动对象实时跟踪系统的执行文件"应该是编译后的Java应用程序,可以直接运行来演示系统功能。而"基于GIS的移动对象实时跟踪系统的程序代码"则包含了源代码,可供学习和参考。 在实际应用中,这样的系统...
因此,实时监测内存变化可以帮助开发者找出可能导致问题的部分。 “内存”标签强调了这个Demo的重点是内存管理。在Android中,内存管理涉及了解对象生命周期,避免内存泄漏,以及有效地使用Java堆和Dalvik/ART...
源码中包含的66个Java源代码文件构成了系统的核心逻辑,它们负责处理数据运算、事件响应以及与用户的交互等功能。而33个XML配置文件则用于定义系统的配置信息,包括用户界面布局、国际化支持、网络通信参数等,这些...