- 浏览: 250143 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1148package test.com; import j ... -
对象池修订版
2013-03-08 14:09 0public class ObjectPool { ... -
深入研究java.lang.Process类
2013-03-07 12:07 857一、概述 Process ... -
深入研究java.lang.Runtime类
2013-03-07 11:54 971一、概述 Runtime ... -
JAVA图像缩放处理
2012-11-09 16:33 915import java.awt.image.Buffere ... -
oa
2012-10-19 18:03 0http://code.google.com/p/joffic ... -
Frameset导致Cookies和Session丢失的原因及解决办法
2012-09-29 11:27 75311.Frameset导致Cookies和Session丢失 ... -
java synchronized详解
2012-09-29 11:28 821来源:http://www.cnblogs.com/GnagW ... -
长连接与短连接
2012-09-29 11:29 1043来源:http://www.cnblogs.com ... -
jndi调用时,各种应用服务器InitialContext的写法
2012-09-27 11:12 949调用ejb时,如果客户端和ejb不在同一个jvm,就要 ... -
jvm字节码执行引擎
2012-08-16 12:25 1066一. 运行时栈帧结构 1. 栈帧是用于支持虚拟机进行方法调用 ... -
ClassWorking技术
2012-08-16 12:25 1373ClassWorking技术 IBM所提出的,动态地监测、修 ... -
动态加载class文件
2012-08-16 12:26 8591.参考老外: public class ClassPat ... -
quartz-scheduler的集群化配置
2012-08-13 09:33 1692由于集群只能工作在JDBC-Jobstore(JobStore ... -
dbcp连接池实现
2012-08-09 13:10 1644dbcp连接池实现commons DBCP 配置参数简要说明 ... -
常用jar包之commons-beanutils使用
2012-08-20 14:07 1459核心提示:Jakarta Commons 项目提供了相当丰富的 ... -
aop详解
2012-08-09 13:09 1335使用Spring进行面向切面 ... -
Dwr2+Struts2+Spring2.5+Hibernate3整合
2012-08-08 12:33 9671.//如果不用,启动时不会出错,但使用Dwr时,会抛出异常: ... -
AOP面向编程的使用场合
2012-08-07 20:45 977AOP(Aspect-Oriented Programming ... -
23种设计模式详解
2012-08-08 13:41 1370Java中23种设计模式 目录 1. 设计模式 3 1. ...
相关推荐
总结来说,这个项目通过ZJPFileListener和ZJPFileMonitor两个类,实现了基于Java的文件监控功能,能够实时监测文件夹中文件的状态变化,并按照设定的时间间隔进行检查。这对于需要实时跟踪文件系统变化的系统来说...
5. **jnlp** - 可能包含Java Web Start(JNLP)文件,这是一种部署Java应用程序的方式,允许用户通过Web浏览器下载并运行应用。JNLP文件描述了应用的结构、所需资源以及如何启动应用。 6. **lib** - 库文件夹,存放...
对于初学者而言,通过阅读和理解这个项目的源代码,可以深入了解Java编程、数据库操作、GUI设计等多个方面的知识。同时,这个系统也可作为实际项目经验的积累,帮助提升问题解决和项目管理能力。在实际使用中,根据...
至于"yuanma",根据上下文推测可能是源码的简写,可能指的是项目的源代码文件夹,其中包含了项目的各个模块,如业务逻辑、数据访问层、控制层等,以及相关的配置文件和资源文件。 综上所述,这个Java毕业设计项目...
`java+jquery`的文件上传技术结合了后端的Java服务器处理和前端的jQuery库来实现无刷新的用户体验,同时提供上传进度条,实时反馈文件上传状态。本文将详细讲解这个主题。 首先,让我们了解Java文件上传的基础。在...
1. **输入检测**:软件需要实时监测用户的键盘输入,与预设的文本进行比较,判断是否正确,并记录错误次数。 2. **计时器**:为测试设置时间限制,模拟实际的打字速度测试环境,增加挑战性。 3. **成绩计算**:根据...
- **描述**:SystemProfile文件夹包含了系统默认的用户配置文件信息,用于初始化新用户的环境设置。 - **可否删除**:不建议删除。如果删除,可能会影响新用户账户的创建和设置。 #### 4. **Drivers** - **描述**:...
总结,Java实现GIF动画效果需要结合窗口组件、图像处理、定时器以及可能的用户交互等多方面知识。通过不断刷新并切换图片帧,可以模拟出动态的视觉效果。在实际项目中,还可以考虑优化性能,比如预加载图片、使用...
- "RainManage":这个文件名可能表示一个管理模块,可能是Java源代码文件夹,包含了处理雨量数据管理的类,如数据的增删改查操作,或者与用户交互的控制器。也可能是一个具体的Java类,负责处理雨量数据的业务逻辑。...
"基于GIS的移动对象实时跟踪系统的执行文件"应该是编译后的Java应用程序,可以直接运行来演示系统功能。而"基于GIS的移动对象实时跟踪系统的程序代码"则包含了源代码,可供学习和参考。 在实际应用中,这样的系统...
因此,实时监测内存变化可以帮助开发者找出可能导致问题的部分。 “内存”标签强调了这个Demo的重点是内存管理。在Android中,内存管理涉及了解对象生命周期,避免内存泄漏,以及有效地使用Java堆和Dalvik/ART...
总结来说,LoadRunner监测Linux系统是一个涉及多步骤的过程,包括虚拟环境的搭建、Linux系统的登录问题处理、LoadRunner脚本的编写和执行、文件的传输以及守护线程的管理等。理解并掌握这些知识点,将有助于你在实际...
这个“自动同步插件”主要功能在于实时监测JS文件的改动,并将这些更改即时同步到运行中的应用程序。这样,开发者在编辑JavaScript代码后,无需手动刷新浏览器或重启应用,就可以立即看到代码变更的效果。这对于快速...
标题中的“WiFi状态实时更新与控制系统”涉及到的是在Android平台上开发的一个应用,它能够监测并控制用户的WiFi连接状态。这个应用的核心功能包括两部分:一是实时获取并显示WiFi的当前状态,二是通过用户界面(UI...
【描述】中提到的“.zip”文件扩展名表明这是一个压缩文件,通常包含多个相关的文件或目录。在这个情况下,压缩包内可能包含了源代码、数据库配置、文档、测试数据等资源,用于完整构建和理解这个灾情控制系统。 ...
2. "myProject":这是一个可能包含项目源代码、资源文件、配置文件等所有组成部分的文件夹,用户可以解压后在开发环境中打开,进行代码阅读、调试或二次开发。 综合以上信息,这个项目可能涉及以下知识点: - Java...
标题 "多个机器人的机器人不可知在线协调_Java_C++_下载.zip" 暗示了这是一个关于多机器人系统中,采用Java和C++编程语言进行的不可知在线协调技术的项目或教程。在这个领域,机器人之间的协作往往需要解决不确定性...
项目采用Java编程语言,结合Android SDK进行开发,旨在实现一个实时监测环境中一氧化碳浓度的应用,提高用户的安全意识。 首先,项目的开发环境要求如下: 1. **JDK**: 使用的是JDK 1.8版本,这是Java开发的基础,...
1. **源码文件夹**:包含项目的Java或Kotlin源代码,可能有多个类文件,用于实现数据收集、处理和展示。 2. **资源文件**:如XML布局文件、图片、图标等,用于构建应用的用户界面。 3. **Gradle配置文件**:如build....