java清除u盘内存卡里的垃圾文件示例

使用例子如下,用JAVA 运行Sort

1, 输入你要排序的文件路径 , 如 例子是对H:\下的文件和它所有子文件夹下的文件进行排序

2, 输入需要进行排序显示的最新大小,如 例子是对10M 大小 以上的文件进行排序

3,从大到小排序后按

文件路径\文件名-------大小 KB--------创建日期进行显示(yyyyMMdd)

格式进行显示,。

这样你就可以把太大的文件删除了,清理出空间

运行例子:H盘指向我的手机内存卡


代码如下:

D:\hjbsSorft\work\20140207\SortSize\bin>java com.he.jinbin.Sort
输入需要排序文件地址:H:\
输入需要排序文件大小(单位M):10
运行中,请稍等...
从大到小文件排序为:
H:\.android_secure\com.sg.android.fish-1.asec-------36224000 KB--------20130525
H:\BaiduMap\vmp\h\quanguogailue.dat-------27616013 KB--------20130512
H:\Download\RedGame_Android_2017-2013-11-06_18-54-27-CI-20.apk-------26563096 KB--------20131111
H:\ugame\ugameSDK\downloads\6F9757F4442DD99FC89FA387C80405D2.apk-------26305964KB--------20131025
H:\Download\com.tencent.mobileqq_60.apk-------25417880 KB--------20130714
H:\Android\data\com.android.gallery3d\cache\imgcache.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<FileItem> fileItems = new ArrayList<FileItem>();
 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()));
  }

}
}

(0)

相关推荐

  • Java中典型的内存泄露问题和解决方法

    Q:在Java中怎么可以产生内存泄露?A:Java中,造成内存泄露的原因有很多种.典型的例子是一个没有实现hasCode和equals方法的Key类在HashMap中保存的情况.最后会生成很多重复的对象.所有的内存泄露最后都会抛出OutOfMemoryError异常,下面通过一段简短的通过无限循环模拟内存泄露的例子说明一下. 复制代码 代码如下: import java.util.HashMap;import java.util.Map; public class MemoryLeak { pu

  • Java中内存分配的几种方法

    一.数组分配的上限 Java里数组的大小是受限制的,因为它使用的是int类型作为数组下标.这意味着你无法申请超过Integer.MAX_VALUE(2^31-1)大小的数组.这并不是说你申请内存的上限就是2G.你可以申请一个大一点的类型的数组.比如: 复制代码 代码如下: final long[] ar = new long[ Integer.MAX_VALUE ]; 这个会分配16G -8字节,如果你设置的-Xmx参数足够大的话(通常你的堆至少得保留50%以上的空间,也就是说分配16G的内存,

  • 详细介绍Java内存泄露原因

    一.Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址.Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的.GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请.引用.被引用.赋值等状况进行监控,Java会使用有向图的方法进行管理内存,实时监控对象是否可以达到,如果不可到达,则就将其回收,这样也可以消除引用循环的问题.在J

  • JAVA程序内存溢出问题原因分析

    本文较为详细的分析了JAVA程序内存溢出问题原因.分享给大家供大家参考.具体如下: 遇到一个线上系统报 java.lang.OutOfMemoryError: PermGen space 错误,需要定位一下问题.很久之前到时弄过这个,现在还真有点不记得了,但这个真的是一个非常有意思的问题,值得好好研究一下.首先第一反应当然是加上-XX:+PrintGCDetails参数来看具体的GC日志,但是由于程序是tomcat启动的,担心里面封装的东西太多不好定位,既然在windows下面,所以还是借助可视

  • java内存溢出示例(堆溢出、栈溢出)

    堆溢出: 复制代码 代码如下: /** * @author LXA * 堆溢出 */ public class Heap { public static void main(String[] args) { ArrayList list=new ArrayList(); while(true) { list.add(new Heap()); } } } 报错: java.lang.OutOfMemoryError: Java heap space 栈溢出: 复制代码 代码如下: /** * @a

  • 基于Java堆内存的10个要点的总结分析

    Java堆内存的10个要点 .javaoutofmemoryerrorgenerationjvmprofiler编程当我开始学习Java编程时,我不知道什么是堆内存或堆空间,我甚至不知道当对象创建时,它们被放在了哪里.当我开始正式写一些程序后,我会经常遇到java.lang.outOfMemoryError的报错,之后我才开始关注什么是堆内存或者说堆空间(heap space).对大多数程序员都经历过这样的过程,因为学习一种语言是非常容易来的,但是学习基础是非常难的,因为没有什么特定的流程让你学

  • 理解Java中的内存泄露及解决方法示例

    本文详细地介绍了Java内存管理的原理,以及内存泄露产生的原因,同时提供了一些列解决Java内存泄露的方案,希望对各位Java开发者有所帮助. Java内存管理机制 在C++ 语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期.从申请分配.到使用.再到最后的释放.这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露. Java 语言对内存管理做了自己的优化,这就是垃圾回收机制. Java 的几乎所有内存对象都是在堆内存上分配(基本数据类型

  • 基于Java内存溢出的解决方法详解

    一.内存溢出类型1.java.lang.OutOfMemoryError: PermGen spaceJVM管理两种类型的内存,堆和非堆.堆是给开发人员用的上面说的就是,是在JVM启动时创建:非堆是留给JVM自己用的,用来存放类的信息的.它和堆不同,运行期内GC不会释放空间.如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了也会导致这块内存的占用过多造成溢出,或者tomcat热部署时侯不会清理前面加载的环境,只会将context更改

  • 深入分析Java内存区域的使用详解

    Java 内存划分: 在Java内存分配中,java将内存分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器.其中方法区和堆对于所有线程共享,而虚拟机栈和本地方法栈还有程序计数器对于线程隔离的.每个区域都有各自的创建和销毁时间. 程序计数器:     作用是当前线程所执行的字节吗的行号指示器.Java的多线程是通过线程轮流切换并分配处理器执行时间方式来实现的.因此,每个线程为了能在切换后能恢复到正确的位置,每个线程需要独立的程序计数器. Java 虚拟机栈: 每个放在被执行的时候都会同时创建一个

  • java清除u盘内存卡里的垃圾文件示例

    使用例子如下,用JAVA 运行Sort 1, 输入你要排序的文件路径 , 如 例子是对H:\下的文件和它所有子文件夹下的文件进行排序 2, 输入需要进行排序显示的最新大小,如 例子是对10M 大小 以上的文件进行排序 3,从大到小排序后按 文件路径\文件名-------大小 KB--------创建日期进行显示(yyyyMMdd) 格式进行显示,. 这样你就可以把太大的文件删除了,清理出空间 运行例子:H盘指向我的手机内存卡 复制代码 代码如下: D:\hjbsSorft\work\201402

  • 超简单超强悍的清理C盘垃圾文件方法

    此法可以安全清理C盘,让你多出近1G空间! 很多朋友说夸张了,只能减少几十M而已,其实那是因为你的系统本来都比较干净,如果你系统使用了一段时间,安装了一定的软件,升级过,长期浏览网页图片,一定时间后你再清理试试看能不能达到1G以上,不夸张,只是针对用的人而言~ 不想把他做成.bat文件上传,让大家自己写,会觉得更安全,放心,安全觉得可以保障的. 教大家自己写个程序,这个程序是自动清理电脑里的垃圾而不会破坏系统,比很多软件都好哦. 新建一个记事本并输入以下的内容:  复制代码 代码如下: @ech

  • 清除系统垃圾文件的批处理(无错增强版)

    "清除系统垃圾.bat","clear.bat","一键清除系统垃圾.bat","30秒清除系统垃圾.bat","快速清除系统垃圾.bat" 基本上找到的者是一个文件, 但这里面也有很多不足或需要改进的地方,但大多数人看不懂DOS命令,所以被改的机会会很少,下面是我所发现的问题及其改进,可以说是比较完美的版本了. 从网上找的,修改了一行,以解决ASP+ACCESS错误:"Microsoft JET

  • 30秒清除你的电脑系统中的垃圾文件

    轻松流畅上网自然是每个人的好心愿,但你是否注意到你的电脑系统磁盘的可用空间正在一天天在减少呢?你的电脑速度是不是越来越慢了呢?没错!在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:*.tmp.*._mp)日志文件(*.log).临时帮助文件(*.gid).磁盘检查文件(*.chk).临时备份文件(如:*.old.*.bak)以及其他临时文件.特别是如果一段时间不清理IE的临时文件夹"Temporary Internet Files",其中的缓存文件有时会占

  • java性能调优System的gc垃圾回收方法

    目录 一.什么是System.gc()? 二.谁可以调用System.gc()? 三.调用System.gc()有什么弊端? 四.哪些场景适合显式调用System.gc()? 五.如何检测您的应用程序正在进行System.gc()? 六.如何禁止GC显式调用或调整调用GC的频率? 搜索和替换 通过JVM参数强制禁止 RMI 一.什么是System.gc()? System.gc()是用Java,C#和许多其他流行的高级编程语言提供的API.当它被调用时,它将尽最大努力从内存中清除垃圾(即未被引用

  • 一分钟清除系统中所有垃圾文件

    Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:*.tmp.*._mp)日志文件(*.log).临时帮助文件(*.gid).磁盘检查文件(*.chk).临时备份文件(如:*.old.*.bak)以及其他临时文件.特别是如果一段时间不清理IE的临时文件夹"Temporary Internet Files",其中的缓存文件有时会占用上百MB的磁盘空间.这些垃圾文件不仅仅浪费了宝贵的磁盘空间,严重时还会使系统运行慢如蜗牛.这点相信你肯定忍受不了吧!所以应及时清理系

  • 在java中实现C#语法里的按引用传递参数的方法

    在C#中,在次函数中调用时改变了其中的数值,主函数中也将发生改变 ref 关键字使参数按引用传递.其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中.若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字 out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化.若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字. Java里面不像C#那样,Java只有对象类

  • 手把手搭建Java共享网盘的方法步骤

    项目介绍 在线共享网盘采用jsp+servlet搭建项目结构实现共享网盘,项目分为管理员,普通用户和付费用户三种角色,根据不同角色控制不同权限,实现不同用户对个人文件文件,所有文件,共享文件的增删改查操作. 项目适用人群 正在做毕设的学生,或者需要项目实战练习的Java学习者 开发环境: jdk 8 intellij idea tomcat 8.5.40 mysql 5.7 所用技术: jsp+servlet js+ajax layUi jdbc直连 项目访问地址 http://localhos

  • Java使用 Class.forName 加载外部 Jar 里的类文件

    故事背景 在一个框架叫 magic-api 里,可以低代码的方式写代码,动态编译执行,但是要想加载一些 import 类进来,需要前提在项目里加载 jar 完成后才可以 import,那么这样每来一个新的 class,就都需要重新加载 class 到项目,然后打包项目,再 import……非常繁琐!!! 当然这边还要提到 magic 的一个大概执行过程,拿到一份源码时,头文件上的 import 会经过源码里 Class.forName 进行加载到内存,有人会说,那直接用 URLClassLoad

  • 手把手教你清理系统垃圾文件

    1.软件安装过程中产生的临时文件 许多软件在安装时,首先要把自身的安装文件解压缩到一个临时目录(一般为 Windows文件夹下的Temp目录),如WinZip等工具,然后再进行安装.如果软件设计有疏忽或者系统有问题,当安装结束后,这些临时文件就会变得并不"临时",成为硬盘里的一堆垃圾,很多时候它们以*.tmp的面孔出现,如图1. 在软件的运行过程中通常也会产生一些临时交换文件,比如一些程序工作时产生的形如*.old.*.bak这样的备份文件,杀毒软件或系统软件检查硬盘时生成的备份文件等

随机推荐