java定时任务拉取共享文件夹的图片
时间: 2023-12-20 22:29:26 浏览: 74
很高兴为您解答。在Java中,可以使用Quartz框架来实现定时任务。下面是一个示例代码,用于定时从共享文件夹中拉取图片:
```java
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;
public class PullImageJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
try {
// 获取共享文件夹中的图片
URL url = new URL("file://shared_folder/image.jpg"); URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
// 将图片保存到本地
File file = new File("local_folder/image.jpg");
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.close();
in.close();
// 输出日志
System.out.println("拉取图片成功,时间:" + new Date());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
// 创建定时任务
JobDetail job = JobBuilder.newJob(PullImageJob.class)
.withIdentity("pullImageJob", "group1")
.build();
// 创建触发器,每隔5秒钟执行一次
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("pullImageTrigger", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5)
.repeatForever())
.build();
// 启动调度器
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
scheduler.start();
// 将任务和触发器绑定到调度器中
scheduler.scheduleJob(job, trigger);
}
}
```
在上面的代码中,我们使用了Quartz框架来创建一个定时任务,该任务会每隔5秒钟从共享文件夹中拉取一张图片,并将其保存到本地文件夹中。您可以根据自己的需求修改代码中的路径和时间间隔。
阅读全文