正文
java代码实现文件扫描 java怎么调用扫描仪
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
如何用java或者c#写个扫描整个文件夹及子文件夹,验证多个文件的md5值,并将md5值重复但不同
javajava代码实现文件扫描的,我已经测试可以使用。
但是单个文件很大java代码实现文件扫描的话可能算md5会比较慢
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.math.BigInteger;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
public class Main
{
ArrayListString md5List = new ArrayListString();
public String getMd5(File file){
String value = null;
FileInputStream in = null;
try {
in = new FileInputStream(file);
MappedByteBuffer byteBuffer = in.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(byteBuffer);
BigInteger bi = new BigInteger(1, md5.digest());
value = bi.toString(16);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(null != in) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return value;
}
public void run(File file) {
if(file != null){
if(file.isDirectory()){
File f[] = file.listFiles();
if(f != null) {
for(int i = 0; i f.length; i++)
run(f[i]);
}
} else {
String md5 = getMd5(file);
if(md5List.contains(md5)) {
System.out.println(file.toString());
file.delete();
} else {
md5List.add(md5);
}
}
}
}
public static void main(String args[]) {
Main m = new Main();
String path = "D:\\test";
m.run(new File(path));
}
}
Java怎么实现扫描多个目录中(包括子目录)的指定文件,并且删除它们?
思路如下使用递归
public static void de(File f)
{ File [] b = f.listFiles();
//获取包含file对象对应的子目录或者文件
for(int i =0;ib.length;i++}{
if(b[i].isFile()){
b[i].delete(); //判断是否为文件如果是 就删除 }
else{ de(b[i]);//否则重新递归到方法中 }
} f.delete();//最后删除该目录中所有文件后就删除该目录 }
如何用java实现定时扫描文件夹
写一个类继承Thread,重写run方法,在run方法里面写你要做的处理,然后根据你的定时要求来设置sleep的时间。
new Thread(){
run() {
// 根据具体需求设置时间:毫秒
sleep(100ms);
while (true) {
// 扫描文件夹处理
....
// 根据具体需求设置时间:毫秒
sleep(24 * 3600 * 1000);
}
}
}
java中不是有定时器吗?写好自己的任务,定时执行就可以了
Timer timer = new Timer();
Task task = new Task(){
public void run(){
System.out.println("running...");
}
};
timer.shedule(task,delayDate,internalTime);
这种跟操作系统关系紧密的操作没必要用java来做,除非你是J2EE,那么Spring里有quataz类似Unix里面cronjob的开源框架可以用,很方便
Unix、linux操作系统配到cronjob里即可,Windows操作系统的“开始”-》“附件”-》系统工具-》计划任务
我想用JAVA实现扫描一篇文本文档,并判断文中是否含有预定的关键字,应该怎么实现?
这个我写的一个编辑dhcp配置文件的方法,你可以参考下
public boolean editDHCP(DHCP dhcp) {
File file=new File("/etc/dhcpd.conf");
File tFile=new File("/etc/dhcpd_cp");
try {
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream(file)));
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(tFile)));
String temp=null;
String str="";
while((temp=in.readLine())!=null){
if(temp.indexOf("subnet-mask")!=-1){
str="option subnet-mask "+dhcp.getSubnetmark()+";";
}else if (temp.indexOf("broadcast-address")!=-1) {
str="option broadcast-address "+ dhcp.getBroadcastadd()+";";
}else if (temp.indexOf("routers-0")!=-1) {
str="option routers-0 "+ dhcp.getRouter()+";";
}else if (temp.indexOf("domain-name-server-0")!=-1) {
str="option domain-name-server-0 "+dhcp.getDNS_1()+";";
}else if (temp.indexOf("domain-name-server-1")!=-1) {
str="option domain-name-server-0 "+dhcp.getDNS_2()+";";
}else if (temp.indexOf("subnet")!=-1) {
str="subnet "+dhcp.getSubnet()+" netmask "+dhcp.getSubnetmark()+"{";
}else if (temp.indexOf("range")!=-1) {
str="range "+dhcp.getRange_from()+" "+dhcp.getRange_to();
}else{
str=temp;
}
out.write(str);
out.write("\n");
}
out.flush();
out.close();
in.close();
file.renameTo(new File("/etc/dhcpd.conf_back"));
if(tFile.renameTo(new File("/etc/dhcpd.conf"))){
return true;
}else{
return false;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
java编辑一个扫描文件的方法,要求可以扫描根目录下的所有文件
package com.sunjob;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
public class Js {
/**
* @param args
*/
//初始化n,用于计数
static int n=0;
public static void get(File file) {
try {
//判断文件是否是文件,如果是文件,获取路径,并计数
if(file.isFile())
{
n++;
System.out.println(file.getAbsolutePath());
}
else
{
//如果是文件夹,声明一个数组放文件夹和java代码实现文件扫描他的子文件
File[] f=file.listFiles();
//遍历文件件下的文件,并获取路径
for (File file2 : f) {
get(file2);
}
}
} catch (RuntimeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
这是扫描c盘的所有文件,可以修改
File file=new File("c:\\");
get(file);
System.out.println("文件个数为java代码实现文件扫描:"+n);
}
}
关于java代码实现文件扫描和java怎么调用扫描仪的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。