Java笔记(二十七)……IO流中 File文件对象与Properties类
File类
用来将文件或目录封装成对象
方便对文件或目录信息进行处理
File对象可以作为参数传递给流进行操作
File类常用方法
创建
booleancreateNewFile():创建新文件,如果文件存在,返回false
booleanmkdir():创建目录,只能创建一级目录
booleanmkdirs():创建目录,可创建多级目录
删除
booleandelete():删除文件,如果文件不存在,返回false,如果删除的是目录,需要确保目录是空的
voiddeleteOnExit():程序结束时删除文件
判断
booleanexists():判断文件是否存在
booleanisFile():判断是否是一个文件
booleanisDirectory():判断是否是目录
booleanisHidden():判断文件是否隐藏
booleanisAbsolute():判断是否是绝对路径
booleancanExecute():判断文件可否执行
booleancanRead():判断文件是否可读
booleancanWrite():判断文件是否可写
获取信息
FilegetAbsoluteFile():获取绝对路径文件对象
StringgetAbsolutePath():获取绝对路径
longlastModified():获取最后修改时间
longlength():获取大小
static File[]listRoots():静态方法,获取系统可用根目录
String[]list(FilenameFilter filter):过滤文件名并获取
File类简单应用
打印.java文件
1:
2: //打印指定目录中的.java文件
3: private static void fileFilter()
4: {
5: File f = new File("d:\\code\\java_blog_code");
6:
7: //FilenameFilter用来设置过滤器
8: String[] s = f.list(new FilenameFilter()
9: {
10: public boolean accept(File dir,String name)
11: {
12: if(name.endsWith(".java"))
13: return true;
14: else
15: return false;
16: }
17: });
18:
19: for(String ss : s)
20: {
21: System.out.println(ss);
22: }
23: }
打印层级目录文件
1: //根据层级打印制表符
2: private static void printLevel(int level)
3: {
4: for(int i = 0 ; i < level ; i ++)
5: {
6: System.out.print("\t");
7: }
8: }
9:
10: //利用递归,分层次打印指定目录的文件
11: private static void showFiles(File dir,int level)
12: {
13: //打印目录名
14: printLevel(level);
15: System.out.println(dir.getName());
16:
17: File[] files = dir.listFiles();
18:
19: for(File f : files)
20: {
21: if(f.isDirectory())
22: //如果是目录,传入方法进行递归
23: showFiles(f,level+1);
24: else
25: {
26: //打印文件列表
27: printLevel(level+1);
28: System.out.println(f.getName());
29: }
30: }
31: }
Properties类
文件配置信息专用类,Hashtable的子类,内部存放一些文件属性的键值对信息,如果较复杂信息可使用xml存储,简单键值对使用Properties存取
Properties常用方法
StringgetProperty(String key):通过key获取value信息
voidload(InputStream inStream):从字节流加载键值对信息
voidload(Reader reader):从字符流加载键值对信息
ObjectsetProperty(String key, String value):设置键值对信息
voidstore(OutputStream out, String comments):将键值对信息导入到字节流
voidstore(Writer writer, String comments):对键值对信息导入到字符流
Properties简单应用
模拟限制程序运行次数
1: import java.io.*;
2: import java.util.*;
3:
4: /*
5: 模拟限制程序运行次数
6: */
7: class PropertiesDemo
8: {
9: public static void main(String[] args) throws IOException
10: {
11:
12: Properties prop = new Properties();
13:
14: //导入info.txt的字节流信息
15: prop.load(new FileInputStream("info.txt"));
16:
17: //获取程序运行次数
18: String times = prop.getProperty("times");
19:
20: //如果第一次运行,则设置次数为1
21: if(times == null)
22: prop.setProperty("times","1");
23: //如果次数大于5次,则打印缴费信息,退出程序
24: else if(times.compareTo("4") > 0)
25: {
26: System.out.println("times greater than 5!please donate money!");
27: System.exit(0);
28: }
29: //程序在允许运行次数范围内,获取次数,并加1
30: else
31: {
32: prop.setProperty("times",""+(Integer.parseInt(times)+1));
33: }
34:
35: //将设置的新次数写入到info文件中
36: prop.store(new FileOutputStream("info.txt"),"times");
37:
38: //程序主题,可无视
39: for(int i = 0 ; i < 10 ; i ++)
40: {
41: System.out.println("i = "+i);
42: }
43:
44:
45: }
46:
47:
48: }
Java笔记(二十七)……IO流中 File文件对象与Properties类的更多相关文章
- Java IO流中 File文件对象与Properties类(四)
File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 booleancreateNewFile():创建新文件,如果 ...
- IO流中File文件最常用和直接的用法
一.File (一)概述 1.File: 1)文件和目录(文件夹)路径名的抽象表示形式 2)注意: 可以表示文件夹与文件,即路径与文件 抽象概念,即路径与文件是否存在不确定 2.构造方法 1)Fi ...
- Java基础学习笔记二十 IO流
转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStre ...
- java基础9(IO流)-File类
File类 File:文件和目录路径名的抽象表示形式.即java中把文件或者目录都封装成File对象 代码练习1 import java.io.File; public class FileDemo1 ...
- Java进阶(二十七)使用Dom4j解析XML文件
使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...
- 使用Java的多线程和IO流写一个文件复制功能类
创建一个复制功能类,继承Thread类,重写run()方法,把FileInputStream和FileOutputStream输入输出流写在run()方法内.示例代码如下: import java.i ...
- java IO流 (二) IO流概述
1.流的分类* 1.操作数据单位:字节流.字符流* 2.数据的流向:输入流.输出流* 3.流的角色:节点流.处理流 图示: 2.流的体系结构 说明:红框对应的是IO流中的4个抽象基类.蓝框的流需要大家 ...
- Java学习之路(十二):IO流<二>
字符流 字符流是可以直接读写字符的IO流 使用字符流从文件中读取字符的时候,需要先读取到字节数据,让后在转换为字符 使用字符流向文件中写入字符时,需要把字符转为字节在写入文件 Reader和Write ...
- 第54节:Java当中的IO流(中)
Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ...
随机推荐
- 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
wait, notify 和 notifyAll,这些在多线程中被经常用到的保留关键字,在实际开发的时候很多时候却并没有被大家重视.本文对这些关键字的使用进行了描述. 在 Java 中可以用 wait ...
- JavaScript原生错误及检测
JavaScript代码在运行时可能产生的错误共有六种类型: 语法错误 类型错误 范围错误 eval错误 引用错误 URI错误 使用try-catch语句检测错误类型 try{ }catch(erro ...
- Portal相关技术及架构
Portal以用户为中心,提供统一的用户登录,实现信息的集中访问,集成了办公商务一体的工作流环境.利用Portal技术,可以方便地将员工所需要的,来源于各种渠道的信息资料集成在一个统一的桌面视窗之内. ...
- [转载]C#读写配置文件(XML文件)
.xml文件格式如下 [xhtml] view plaincopy <?xml version="1.0" encoding="utf-8"?> & ...
- sublime text 2 前端编码神器-快捷键与使用技巧介绍
介绍网址:http://www.xuanfengge.com/sublime-text-2-artifact.html
- java常见内存溢出(OOM)
jvm内存区域 程序计数器一块很小的内存空间,作用是当前线程所执行的字节码的行号指示器. java栈与程序计数器一样,java栈(虚拟机栈)也是线程私有的,其生命周期与线程相同.通常存放基本数据类型, ...
- zoj 3757&&3758
3757一个模拟题,简单,但容易错: 3758 大素数判定就行: #include<cstdio> #include<cstring> #include<algorith ...
- linux 和 ecos 内核线程创建/信号量/event等对比
ecos: int gx_thread_create (const char *thread_name, gx_thread_id *thread_id, void(*entry_func)(void ...
- 未来 USB Type-C 将可靠软体判断线材是否符合规定
USB Type-C 插头允许通过的电流和功率比过去常见的 USB 规范要大得多,因此从市面上「随便买一条」USB Type-C 的充电线的危险也同样大得多,毕竟不是所有的线材能承受的电流都一样,万一 ...
- VC多文档编程技巧(取消一开始时打开的空白文档)
VC多文档编程技巧(取消一开始时打开的空白文档) http://blog.csdn.net/crazyvoice/article/details/6185461 VC多文档编程技巧(取消一开始时打开的 ...