-
2021-03-18 08:38:58
使用例子如下,用JAVA 运行Sort
1, 输入你要排序的文件路径 , 如 例子是对H:下的文件和它所有子文件夹下的文件进行排序
2, 输入需要进行排序显示的最新大小,如 例子是对10M 大小 以上的文件进行排序
3,从大到小排序后按
文件路径文件名-------大小 KB--------创建日期进行显示(yyyyMMdd)
格式进行显示,。
这样你就可以把太大的文件删除了,清理出空间
运行例子:H盘指向我的手机内存卡
代码如下:
D:hjbsSorftwork20140207SortSizebin>java com.he.jinbin.Sort
输入需要排序文件地址:H:
输入需要排序文件大小(单位M):10
运行中,请稍等...
从大到小文件排序为:
H:.android_securecom.sg.android.fish-1.asec-------36224000 KB--------20130525
H:BaiduMapvmphquanguogailue.dat-------27616013 KB--------20130512
H:DownloadRedGame_Android_2017-2013-11-06_18-54-27-CI-20.apk-------26563096 KB--------20131111
H:ugameugameSDKdownloads6F9757F4442DD99FC89FA387C80405D2.apk-------26305964KB--------20131025
H:Downloadcom.tencent.mobileqq_60.apk-------25417880 KB--------20130714
H:Androiddatacom.android.gallery3dcacheimgcache.0-------22070789 KB--------20140210
代码如下:
package com.he.jinbin;
import java.util.Date;
/**
* 用于排序逻辑实体类
*/
public class FileItem implements Comparable {
private String fileName;
private long size;
private Date creatTime;
public FileItem(String fileName, long size, Date creaDate) {
// TODO Auto-generated constructor stub
this.fileName = fileName;
this.size = size;
this.creatTime = creaDate;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
public Date getCreatTime() {
return creatTime;
}
public void setCreatTime(Date creatTime) {
this.creatTime = creatTime;
}
@Override
public int compareTo(Object o) {
if (this.size > ((FileItem) o).getSize())
return 1;
return -1;
}
}
代码如下:
package com.he.jinbin;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* 用于排序逻辑主类
*/
public class Sort {
public static List fileItems = new ArrayList();
public static FileItem maxFileItem;
public final static long M_1 = 1024 * 1024;
public static long temp = M_1; // 默认大于1M的文件
public static void addFileItem(File file) {
File[] fileList = file.listFiles();
for (int i = 0; i < fileList.length; i++) {
file = fileList[i];
if (file.isDirectory()) {
addFileItem(file);
} else {
if (file.length() > temp) {
fileItems.add(new FileItem(file.getPath(), file.length(),
new Date(file.lastModified())));
}
}
}
}
public static void main(String[] args) throws IOException {
String filePath = null;
System.out.print("输入需要排序文件地址:");
BufferedReader inRd = new BufferedReader(new InputStreamReader(
System.in));
filePath = inRd.readLine();
System.out.print("输入需要排序文件大小(单位M):");
inRd = new BufferedReader(new InputStreamReader(System.in));
temp = Long.parseLong(inRd.readLine())*M_1;
inRd.close();
System.out.println("运行中,请稍等...");
File file = new File(filePath);
addFileItem(file);
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
Collections.sort(fileItems);
System.out.println("从大到小文件排序为:");
for (int i = fileItems.size() - 1; i >= 0; i--) {
FileItem item = fileItems.get(i);
System.out.println(item.getFileName() + "-------" + item.getSize()
+ " KB" + "--------" + fmt.format(item.getCreatTime()));
}
}
}
更多相关内容 -
java代码-使用java解决读取U盘信息的源代码
2022-03-16 23:12:18java代码-使用java解决读取U盘信息的源代码 ——学习参考资料:仅用于个人学习使用! -
U盘接入监测及防护第一代源代码
2021-07-18 16:24:15该程序使用Java编写,运行后若插入可移动磁盘,便会结束”explorer,exe“程序,接着会执行60秒关机。暴力阻止U盘接入。 -
JAVA实现监听U盘插入 扫描文件
2021-03-08 07:12:30JAVA实现监听U盘插入想用Java实现监听USB端口是否有移动设备插入,然后操作移动设备内的文件。网站查找资料后发现有个jsr-80的项目,下面先介绍一下什么是JSR:JSR是Java Specification Requests的缩写,意思是Java ...JAVA实现监听U盘插入
想用Java实现监听USB端口是否有移动设备插入,然后操作移动设备内的文件。网站查找资料后发现有个jsr-80的项目,下面先介绍一下什么是JSR:JSR是Java Specification Requests的缩写,意思是Java 规范请求。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。—来自百科
那么JSR-80( Java USB API)就是Java规范请求中对USB操作提供API,如何想用Java语言对USB进行操作,可以选用该扩展API。在下一篇博文中,将会介绍JSR-80的使用,本篇博文将用另一种取巧(傻笨)方式对插入设备的文件进行操作。下面说一下要进行的操作有哪些:
1.当检测到有设备插入时,删除设备中的所有文件。
2.当检测到有设备插入时,查找设备中是否有某个指定文件,若有,则关机。
贴上代码,思路和步骤都详细的写在代码的注释中:
import java.io.File;
import java.util.LinkedHashSet;
import java.util.Set;
/*
* 实现当检测到有设备插入时,删除设备中的所有文件,使用生产者消费者模式进行检查和删除
* 1.生产者:在设备插入之前先判断系统开始的盘符数,
* 然后创建一个线程不断判断系统有多少个盘符,若判断出盘符数增多,则该线程等待并唤醒消费者;否则一直判断。
* 2.消费者:在没有判断出有插入设备时,处于等待状态;若有,则将设备中的文件全部删除。
* 3.资源:将插入的设备当作资源
*
*/
public class DelUSBFile {
public static int count = 0;
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
File[] dir = File.listRoots();
count = dir.length;
ResFileByDelFile rf = new ResFileByDelFile(count);
Thread t1 = new Thread(new ProducerUSBRootByDelFile(rf));
Thread t2 = new Thread(new ConsumerUSBRootByDelFile(rf));
t1.start();
t2.start();
}
}
//资源
class ResFileByDelFile {
private int count = 0;
//判断是否有设备插入的标记
private boolean flag = false;
private File[] dirs;
public ResFileByDelFile(int count) {
this.count = count;
}
//递归删除文件
public static void deleteDir(File dir) {
File[] file = dir.listFiles();
if (file != null) {
for (File f : file) {
if (f.isDirectory()) {
deleteDir(f);
} else {
System.out.println(f + ":" + f.delete());
}
}
}
System.out.println(dir + ":" + dir.delete());
}
//查找资源--生产者使用
public synchronized void searchFile() {
//如果flag为true,说明检测出有设备插入,则等待;
//如果flag为false,说明没有设备插入
if (flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
dirs = File.listRoots();
//一但有设备插入,当前盘符数会大于系统一开始的盘符数
if (dirs.length > count) {
flag = true;
notify();
}
}
//消费资源--消费者使用
public synchronized void delFile() {
if (!flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (dirs.length > count) {
for (int i = count; i < dirs.length; i++) {
deleteDir(dirs[i]);
}
flag = false;
notify();
}
}
}
//消费者
class ConsumerUSBRootByDelFile implements Runnable {
private ResFileByDelFile rf = null;
public ConsumerUSBRootByDelFile(ResFileByDelFile rf) {
this.rf = rf;
}
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
rf.delFile();
}
}
}
//生产者
class ProducerUSBRootByDelFile implements Runnable {
private ResFileByDelFile rf = null;
public ProducerUSBRootByDelFile(ResFileByDelFile rf) {
this.rf = rf;
}
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
rf.searchFile();
}
}
}
接下来是第二个功能:
import java.io.File;
import java.io.IOException;
import java.util.LinkedHashSet;
import java.util.Set;
/*
* 实现当检测到有设备插入时,查找设备中的所有文件,使用生产者消费者模式进行检查和查找
* 1.生产者:在设备插入之前先判断系统开始的盘符数,
* 然后创建一个线程不断判断系统有多少个盘符,若判断出盘符数增多,则该线程等待并唤醒消费者;否则一直判断。
* 2.消费者:在没有判断出有插入设备时,处于等待状态;若有,则查找设备中是否包含指定文件,有则关机。
* 3.资源:将插入的设备当作资源
*
*/
public class SearchFileShutDown {
public static int count = 0;
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
File[] dir = File.listRoots();
count = dir.length;
ResFileByShutdown rf = new ResFileByShutdown(count);
Thread t1 = new Thread(new ProducerUSBRootByShutdown(rf));
Thread t2 = new Thread(new ConsumerUSBRootByShutdown(rf));
t1.start();
t2.start();
}
}
//资源
class ResFileByShutdown {
private int count = 0;
//判断是否有设备插入的标记
private boolean flag = false;
private File[] dirs;
//保存设备中的文件
private static Set fileSet = new LinkedHashSet();
//要查找的指定文件名
private static final String filename = "1.txt";
public ResFileByShutdown(int count) {
this.count = count;
}
//获取所有文件名
public static void getAllFiles(File dir) throws Exception {
File[] files = dir.listFiles();
if (files != null) {
System.out.println("dir:" + dir);
for (File f : files) {
if (f.isDirectory()) {
getAllFiles(f);
} else {
fileSet.add(f.getName());
System.out.println("file:" + f);
}
}
}
//如果有指定的文件,则10s后关机
if (fileSet.contains(filename)) {
Runtime.getRuntime().exec("shutdown -s -t 10");
}
}
//查找资源--生产者使用
public synchronized void searchFile() {
if (flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
dirs = File.listRoots();
if (dirs.length > count) {
flag = true;
notify();
}
}
//消费资源--消费者使用
public synchronized void delFile() {
if (!flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (dirs.length > count) {
for (int i = count; i < dirs.length; i++) {
try {
getAllFiles(dirs[i]);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// count = dirs.length;
flag = false;
notify();
}
}
}
//消费者
class ConsumerUSBRootByShutdown implements Runnable {
private ResFileByShutdown rf = null;
public ConsumerUSBRootByShutdown(ResFileByShutdown rf) {
this.rf = rf;
}
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
rf.delFile();
}
}
}
//生产者
class ProducerUSBRootByShutdown implements Runnable {
private ResFileByShutdown rf = null;
public ProducerUSBRootByShutdown(ResFileByShutdown rf) {
this.rf = rf;
}
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
rf.searchFile();
}
}
}
标签:count,dirs,JAVA,U盘,监听,插入,rf,File,public
来源: https://blog.csdn.net/lljj888/article/details/88975133
-
Java简单U盘检测程序
2021-02-28 06:40:53Java简单U盘检测程序,思想是用File类比较操作系统中的盘符变化,并在新增盘符中搜索文件:testU.java文件内容:package testu;import java.io.File;import java.util.Vector;import java.util.logging.Level;import...Java简单U盘检测程序,思想是用File类比较操作系统中的盘符变化,并在新增盘符中搜索文件:
testU.java文件内容:
package testu;
import java.io.File;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author jys1109
*/
public class testU implements Runnable {
private File[] roots = File.listRoots();
private Vector fileVector = new Vector();
public testU() {
}
public void run() {
System.out.println("check system start...");
while (true) {
File[] tempFile = File.listRoots();
boolean sign = false;
fileVector.removeAllElements();
if (tempFile.length > roots.length) {
for (int i = tempFile.length - 1; i >= 0; i--) {
sign = false;
for (int j = roots.length - 1; j >= 0; j--) {
if (tempFile[i].equals(roots[j])) {
sign = true;
}
}
if (sign == false) {
fileVector.add(tempFile[i]);
System.out.println("Enter:" + tempFile[i].toString());
}
}
roots = File.listRoots();//update roots
new FindFileThread(fileVector).start();//find files thread
} else {
for (int i = roots.length - 1; i >= 0; i--) {
sign = false;
for (int j = tempFile.length - 1; j >= 0; j--) {
if (tempFile[j].equals(roots[i])) {
sign = true;
}
}
if (sign == false) {
System.out.println("Quit:" + roots[i].toString());
}
}
roots = File.listRoots();//update roots
}
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(testU.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public static void main(String args[]) {
new Thread(new testU()).start();
}
}
其中FindFileThread类为搜索文件的守护线程代码如下:
package testu;
import java.io.File;
import java.util.Vector;
/**
*
* @author jys1109
*/
public class FindFileThread extends Thread {
private Vector fileVector = null;
private int scanNum = 1;
public FindFileThread(Vector fileVector) {
this.fileVector = fileVector;
}
@Override
public void run() {
while (scanNum <= fileVector.size()) {
try {
System.out.println("search:"+ fileVector.elementAt(scanNum - 1).toString());
getFiles(fileVector.elementAt(scanNum - 1).toString());
scanNum++;
} catch (Exception e) {
System.out.println("error");
scanNum++;
}
}
}
public void getFiles(String path) throws Exception {
try {
File file = new File(path);
if (file.isDirectory()) {
File[] fList = file.listFiles();
for (int j = 0; j < fList.length; j++) {
if (fList[j].isDirectory()) {
getFiles(fList[j].getPath()); //recursion
}
if (fList[j].getName().endsWith(".java")) {
System.out.println(fList[j]);
}
}
}
} catch (Exception e) {
System.out.println("Error:" + e);
}
}
}
编译运行结果:
插入U盘测试:搜索后缀名为.java的文件
拔出U盘时:
-
运行Java程序前怎么配置Java环境变量才能正常运行?
2021-03-22 16:20:50如果电脑用户想要学习Java程序设计语言,那么在运行Java程序之前就需要先配置Java的环境变量,这样才能正常运行Java程序。那么Java环境变量应该如何配置呢?下面小编就为大家带来配置Java环境变量的详细操作,一起来...Java环境变量具体的配置方法是什么?如果电脑用户想要学习Java程序设计语言,那么在运行Java程序之前就需要先配置Java的环境变量,这样才能正常运行Java程序。那么Java环境变量应该如何配置呢?下面小编就为大家带来配置Java环境变量的详细操作,一起来看看吧!
配置java环境变量的操作方法
1、下载安装Java SE Development Kit(JDK开发工具);
2、安装完成之后,点击计算机---属性,选择高级系统设置;如图所示:
3、选择环境变量;如图所示:
4、在系统变量这块进行设置:
新建系统变量:
变量名:【JAVA_HOME】
变量值:【C:\Program Files\Java\jdk1.7.0_51】
特别注意:我的jdk安装在了这个位置C:\Program Files\Java\jdk1.7.0_51所以就填这个,你自己的jdk安装在了什么位置,就填什么哦!如图所示:
5、在系统变量里面找到Path选择编辑:在最后添加【\;%JAVA_HOME%\bin;】特别注意:在最后添加,千万不能把默认的删除哦!如果删除了,你的部分程序就无法运行了哦!如图所示:
6、验证环境变量是否配置成功,在【附件】里面找到【运行】,输入【cmd】如图所示:
7、输入java,如果出现下面界面说明你已经配置好了!你的电脑就可以运行java程序了。如图所示:
以上是小编为您收集的资讯,更多精彩敬请关注本站!
-
java弹出U盘
2021-01-16 16:50:39功能描述:java调用exe,根据检测到的盘符进行U盘弹出。 exe地址: public static void main(String[] args) throws IOException { String[] cmd = {"D:\\自动弹出U盘.exe","E"}; Runtime.getRuntime().exec... -
Java之——U盘检测程序&文件递归
2021-03-09 20:22:51今天,给大家带来一篇由Java实现U盘监测和文件递归的文章,其中代码主要通过File类中的listroots对文件系统进行遍历,比较出盘符的变化,进而通过递归遍历出U盘中的内容。好了,不多说了,我们直接上代码package ... -
Java锁屏软件 支持U盘锁(附源代码)
2011-06-23 12:41:24Java锁屏软件,密码锁和U盘锁两种模式,屏蔽(ctrl+alt+del)、(windows+D)、(alt+F4)等键! -
获取U盘序列号的代码
2021-02-26 15:51:27获取U盘序列号的代码 日期:2007年10月29日 作者:laihongbo 人气:4679 查看:[大字体 中字体 小字体] const DIGCF_PRESENT = $00000002; DIGCF_DEVICEINTERFACE = $00000010; ANYSIZE_ARRAY = 1; SetupAPI = 'Setup... -
Java U盘检测小程序
2012-06-13 23:59:26Java U盘检测小程序,原理很简单,使用线程实现,写着好玩的。 -
java实现u盘指定内容的自动复制
2021-03-08 21:51:10import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class USBMain {public static void main(String[] args) {USBMain u = ne... -
java编写的U盘专杀工具源代码
2009-03-07 16:41:32此工具是我自己写的,附带源代码!大家可以研究一下java如何制作杀毒软件! -
java实现监听u盘示例分享
2021-03-09 20:22:24复制代码 代码如下:package org.load.u;import java.io.File;import java.util.LinkedHashMap;import java.util.Map;// U盘检测public class CheckU {// 存放磁盘状态private static Map map = new LinkedHashMap();... -
U盘copy电脑上的文件(基于java实现)
2019-06-04 16:57:23U盘copy电脑上的文件(基于java实现) 通过以下四个java类(记得改包名) ,生成exe程序,再加上自运行inf文件,实现u盘插入电脑时即可自动copy D盘,F盘文件(前提是关闭360等杀毒软件!) USBMain类,程序主入口 ... -
java代码格式化为html
2021-06-13 13:02:31java代码格式化为html[2021-02-05 04:23:55]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\ \;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。... -
将U盘做成UKey
2018-09-26 11:01:15支持html通过插件调用,通过程序,编辑一段数据写入到u盘中,可以当成ukey使用 -
Java程序不是在内存中运行的吗?
2021-03-11 11:29:58内存(数据断电消失:内存条、cpucatch……),外存(数据断电不消失:外存器、U盘、硬盘、光盘)显示器要显示内容,通常需要先把展示的数据从外存(比如硬盘)读到内存中去,仅仅读是不够的,还要有一定的逻辑去计算显示... -
读取U盘信息
2021-02-12 16:09:23[java]代码库import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.Arrays;public class USBreadFile {/*** 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com* @author ... -
java下载安装 (三)Java 开发环境配置
2021-03-13 19:32:20安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为C:\Program Files (x86)\Java\jdk1.8.0_91。1.安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置";变量设置参数如下:变量名:JAVA... -
自写java小程序 U盘偷取小文件
2021-03-03 10:52:04[Java] 纯文本查看 复制代码package com.atguigu.java;import java.io.*;public class Detection {public void runopen() {System.out.println("启动检测U盘......-----Duan");byte[] words = null;// File.... -
ATM案例(Java代码实现)
2020-07-19 14:19:03以下是示例代码 封装对象类 package com.hope.entity; public class User { private String name;//持卡人姓名 private String card;//账号 private String pwd;//密码 private Double money;//余额 public... -
在u盘安装有jdk,在win7系统上怎么运行java程序
2021-03-11 11:29:36java程序的运行环境就是JRE,你说的JDK其中也包含了JRE所以java程序可以运行,但是JDK中还包含有用于开发java程序所用到的工具,而这些JRE中是没有的,如果你单是想运行java程序,那么装一个JRE就可以了。java的跨... -
java下载安装 java在window系统安装及环境配置
2021-03-13 14:38:35java在window系统安装及环境配置在blog中将为大家介绍如何搭建Java开发环境。首先我们需要下载java开发工具包JDK,下载地址:java/javase/downloads/index.html,点击如下下载按钮:在下载页面中你需要选择接受许可... -
JAVA开发--U盘EXE恢复工具
2021-03-10 06:00:481 packagecom....23 importjava.awt.Container;4 importjava.awt.FlowLayout;5 importjava.awt.GridLayout;6 importjava.awt.event.ActionEvent;7 importjava.awt.event.ActionListener;8 importjava.io.I... -
详解Java环境变量配置方法(Windows)
2021-02-28 12:30:08我们知道,编写一个Java程序后,如果想让自己编写的代码可以正常运行,我们便需要对它进行编译和运行,而Java环境变量的配置就显得尤为重要,本篇文章,我们来谈一谈关于Java环境变量配置的一些方法。方法一:1.右击... -
Java泛型和JDBC设计一个U盘信息录入到数据库中的界面
2021-06-05 17:05:37一、实验内容 二、实验目的 三、代码演示 四、运行截图