- 浏览: 1588583 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
过滤获取指定后缀的文件
输出文件目录列表
递归
删除文件
属性文件的读取和输出
输出文件目录列表
递归
删除文件
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * File 获取 * String[] list():获取指定目录中的所有文件和目录的名称 * String[] list(FileNameFilter fnf): 获取指定目录中,过滤后的文件 或目录名称 * File[] listFiles():获取指定目录下的所有文件 和 目录对象 * * --递归--- * 需求: * 列出制定目录下的文件或者文件夹,包含子目录中的内容,也就是列出指定目录下的所有内容. * * 因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可.函数 中 还需要调用自己,这样我们就称为 "递归" * 递归要注意点的是 * 1.限定条件 * 2.注意递归的次数,尽量避免内存溢出 * * ---删除一个带内容的目录--- java删除是不走回收站,注意确定 * 删除的原理 * 在window中,删除目录从里面往外删除. * 既然是从里往外删除,就需要用到递归了. * * ---建立指定目录下的java文件的绝对路径,存储到一个文本文件 * 建议一个java文件列表文件 * * 思路: * 1.对指定的目录进行递归 * 2.获取递归过程素有的java文件路径 * 3.将这些路径存储的到指定的集合中 * 4.将集合中的数据写入如到一个文件中. * */ public class FileDemo2 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub System.out.println("========过滤查找==========="); //acceptFile(); //listFile(); System.out.println("========遍历所有文件和目录==========="); /*File dir=new File("D:\\明天"); showDir(dir,0);*/ System.out.println("========递归==========="); //toBin(6); 还需要逆转 输出 //toBin_1(6); //getSum(3); //6 /*System.out.println("========删除文件==========="); File dir=new File("E:\\kankan"); removeDir(dir);*/ File dir=new File("D:\\me"); List<File> list=new ArrayList<File>(); fileToList(dir,list); System.out.println(list.size()); File file=new File(dir,"javaList.txt"); writeToFile(list,file.toString()); } public static void fileToList(File dir,List<File> list){ File [] files=dir.listFiles(); for(File file:files){ if(file.isDirectory()) fileToList(file,list); else{ if(file.getName().endsWith(".txt")) list.add(file); } } } public static void writeToFile(List<File> list,String javaListFile) throws IOException{ BufferedWriter bufw=null; try{ bufw=new BufferedWriter(new FileWriter(javaListFile)); for(File f:list){ String abspath=f.getAbsolutePath(); bufw.write(abspath); bufw.newLine(); bufw.flush(); } }catch(IOException e){ throw e; }finally{ try{ if(bufw!=null) bufw.close(); }catch(IOException e){ throw e; } } } //删除文件 public static void removeDir(File dir){ File[] files=dir.listFiles(); for (File file : files) { //不是隐藏 并且还是目录 if(!file.isHidden()&&file.isDirectory()) removeDir(file); else System.out.println(file.getName()+"::"+file.delete()); } System.out.println(dir.getName()+"::dir::"+dir.delete()); } //求和 public static int getSum(int n){ if(n==1) return 1; return n+getSum(n-1); } //现在 采用 递归 public static void toBin_1(int num){ if(num>0){ toBin_1(num/2); System.out.print(num%2); } } //以前转二进制 public static void toBin(int num){ while(num>0){ System.out.print(num%2); num=num/2; } } /** * 列出所有目录结构 */ public static void showDir(File dir,int space){ getLever(space); System.out.println(dir); space++; File[] file=dir.listFiles(); for(File f:file){ if(f.isDirectory()) showDir(f,space); else{ getLever(space); System.out.println(f.getName()); } } } private static void getLever(int space){ for (int i = 0; i < space; i++) { System.out.print(" "); } System.out.print("|--"); } /** * 获取目录下的所有文件对象 ,这样可以进行其他的操作 * 如果使用list() 只能获取文件和目录的名称 */ public static void listFile(){ File dir=new File("c:\\"); File[] files=dir.listFiles(); for(File f:files){ System.out.println(f.getName()+"::"+f.length()); } } /** * 过滤制定文件夹中的 指定的后缀名的文件 */ public static void acceptFile(){ File dir=new File("C:\\"); String[] arr=dir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { // TODO Auto-generated method stub return name.endsWith(".jpg"); } }); System.out.println(arr.length); for(String name:arr){ System.out.println(name); } } }
属性文件的读取和输出
/** * Properties是hashTable的子类 * 也就是说他是具备Map集合的特点,而且他里面存储的都是字符串. * * 是集合中和IO技术相结合的集合容器 * 该对象的特点是:可以使用键值对形式的配置文件. * * * 需求: * 用于记录应用程序运行的次数 * 如果使用次数已到,那么给出注册提示 * * 很容易想到计数器: * 可是该计数器定义在应用程序中,随着程序的运行而在内存中存在,并进行自增. * 可是随着该应用程序的退出,该计数器也在内存中消失了,程序下次启动又重新开始从0计数了. * * * */ public class PropertiesDemo { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub //setAndGet(); System.out.println("========自定义方法加载文件到properites中==========="); //method_1(); System.out.println("========使用字节流加载数据到==========="); //loadDemo(); System.out.println("========注册使用次数的控制============"); useTimes(); } //模拟 注册 public static void useTimes() throws IOException{ Properties prop=new Properties(); File file=new File("E:\\count.ini"); if(!file.exists()) file.createNewFile(); FileInputStream fis=new FileInputStream(file); prop.load(fis); String value=prop.getProperty("time"); int count=0; if(value!=null){ count=Integer.parseInt(value); if(count>=5){ System.out.println("您好,使用次数已到,拿钱!"); return; } } count++; prop.setProperty("time", count+""); FileOutputStream fos=new FileOutputStream(file); prop.store(fos, ""); fos.close(); fis.close(); } //loadDemo // 加载 字节流 都是早期的,加载 字符流 1.6 才开始. public static void loadDemo() throws IOException{ Properties prop=new Properties(); FileInputStream fis=new FileInputStream("E:\\info.txt"); prop.load(fis); fis.close(); System.out.println(prop); prop.list(System.out); prop.setProperty("wangwu", "39"); FileOutputStream fos=new FileOutputStream("E:\\info.txt"); prop.store(fos, "author"); fos.close(); } /** * 演示,如果将流中的数据存储到集合中. * 将要将Info.txt中的键值对数据存储到集合中进行操作. * @throws IOException */ public static void method_1() throws IOException{ BufferedReader bufr=new BufferedReader(new FileReader("E:\\info.txt")); Properties prop=new Properties(); String line=null; while((line=bufr.readLine())!=null){ String[] arr=line.split("="); //System.out.println(arr[0]+"..."+arr[1]); prop.setProperty(arr[0], arr[1]); } bufr.close(); System.out.println(prop); } //设置和获取元素 public static void setAndGet(){ Properties prop=new Properties(); prop.setProperty("zhangsan", "30"); prop.setProperty("lisi", "39"); System.out.println(prop); prop.setProperty("lisi", "89"); String value=prop.getProperty("lisi"); System.out.println(value); Set<String> names=prop.stringPropertyNames(); for(String s:names){ System.out.println(s+":"+prop.getProperty(s)); } } }
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 993public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2279经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5648package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 979import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1053/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 1004//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1822更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1414import java.util.HashMap; ... -
java 读写锁
2016-08-03 23:46 812import java.util.Random; i ... -
java 多个线程之间同步通信
2016-08-02 17:16 2395import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 921// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1170import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 799import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1143import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3888import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 963/** *父子线程 交替打印10 次, 100次 ... -
java 线程同步
2016-08-01 16:43 1019import java.util.concurrent.l ... -
java多线程练习
2016-08-01 16:35 1837Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 1000/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2228package out; import ja ...
相关推荐
"20天学通JAVA技术高清版"显然是一份旨在帮助初学者在短时间内掌握Java核心技术的教程资源。这份教程可能包含了从基础语法到高级特性的全面讲解,通过高清视频或文档形式,使学习过程更为直观易懂。 1. **Java基础...
在“21天Java学习PPT”中,你将踏上一段深入学习Java编程语言的旅程。这个资源旨在帮助初学者在短短21天内建立起坚实的Java基础,同时也适合那些希望巩固或更新Java知识的开发者。PPT的形式使得学习更加直观和易懂,...
这份资料集合了作者在达内参加前20天学习的精华内容,旨在为那些考虑参加达内Java培训或者对Java编程感兴趣的初学者提供一份宝贵的参考。 1. **Java语言概述** Java是一种跨平台、面向对象的编程语言,由Sun ...
Java电子教案(21天学通JAVA)是一套详尽且实用的教学资源,旨在帮助初学者在短时间内掌握Java编程语言的基础知识。这份教程通过PPT的形式,将理论知识与实践案例相结合,使得学习过程更加直观易懂。接下来,我们将...
Java核心课件是一套全面而深入的教程,旨在帮助学习者在短短20天内熟练掌握Java编程语言的核心概念和技术。这个课程以通俗易懂的方式呈现,使得即使是没有编程背景的初学者也能轻松上手。Java是一种广泛使用的面向...
87 5.3 数组操作的举例 88 5.3.1 数组元素值的复制 88 5.3.2 数组元素的排序 90 5.3.3 在数组里查找指定元素 91 5.3.4 利用数组打印26个英文字母 92 5.4 综合练习 93 5.5 小结 94 5.6 习题 94 第二篇 面向对象篇 第6...
### Java基础知识 #### 1. Java的基本数据类型与String类型的区别 Java中有八种基本数据类型,分为两类:整数类型(byte、short、int、long)和浮点类型(float、double),此外还包括布尔类型(boolean)和字符...
13. **用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?** - 排序方法参见上文快速排序示例。 - 序列化实现方法:实现`Serializable`接口或实现`Externalizable`接口。 14. **如在COLLECTION框架中,实现比较...
创建、写入和删除文件在Java中通常使用`File`、`FileWriter`和`BufferedWriter`类完成。正确的做法是在写入文件后检查文件是否存在,然后删除它。注意,`BufferedWriter`的构造函数需要一个`FileWriter`实例。因此...
在“Java 2编程21天自学通”的后半部分,我们深入探讨了Java编程语言的核心概念和技术。这个自学教程旨在帮助初学者在21天内掌握Java编程的基础,为今后的开发工作打下坚实的基础。以下是根据描述和标签提炼出的一些...
这25天的学习内容是Java开发者的进阶之路,通过逐日递增的难度,帮助学员巩固基础并提升技能。 【描述】"java毕向东源代码16-25天,共25天" 表明这是一个持续25天的Java学习计划,强调了实践与理论的结合。这期间,...
Java序列化是将对象状态信息转换为可以存储或传输的形式的过程。通过实现Serializable接口,对象可以被序列化。使用ObjectOutputStream类来保存对象状态。 6. 一个".java"源文件中是否可以包括多个类(不是内部类...
13. **用JAVA实现一种排序,JAVA类实现序列化的方法(二种)** - 排序方法已在上文提及。 - 序列化的两种实现方式: - 实现`Serializable`接口; - 使用`writeReplace()`和`readResolve()`方法自定义序列化逻辑。...
#### 一、Java面向对象基础 1. **super()与this()的区别** - `super()`用于调用父类的构造方法或父类中的成员方法。 - `this()`用于调用本类中的其他构造方法。 2. **作用域public, protected, private,以及不写...
- 获取某个日期是否是当月的最后一天:可以使用 `java.time.LocalDate` 类的方法。 - 格式化日期:使用 `java.text.SimpleDateFormat` 或 `java.time.format.DateTimeFormatter`。 5. **数组和集合** - 数组是...
这个压缩包的“day2”可能意味着课程的第二天,进一步深入到更具体的话题。学习者应该逐步理解和实践这些知识点,通过编写和运行代码来巩固理解。记住,持续练习和查阅文档是成为Java程序员的关键步骤。祝你在Java...
Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识Java 4 实验1 一个简单的应用程序 ...
在Java中,`String`对象用于表示文本,通常由字符序列组成。`String`是不可变的对象,这意味着一旦创建了一个`String`对象,它的内容就不能改变。 #### 2. 字符串的操作 - **字符串反转**:可以通过循环遍历字符串...