博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java IO流中 File文件对象与Properties类(四)
阅读量:7121 次
发布时间:2019-06-28

本文共 3746 字,大约阅读时间需要 12 分钟。

File类

用来将文件或目录封装成对象

方便对文件或目录信息进行处理

File对象可以作为参数传递给流进行操作

File类常用方法

创建

boolean

createNewFile():创建新文件,如果文件存在,返回false

boolean

mkdir():创建目录,只能创建一级目录

boolean

mkdirs():创建目录,可创建多级目录

删除

boolean

delete():删除文件,如果文件不存在,返回false,如果删除的是目录,需要确保目录是空的

void

deleteOnExit():程序结束时删除文件

判断

boolean

exists():判断文件是否存在

boolean

isFile():判断是否是一个文件

boolean

isDirectory():判断是否是目录

boolean

isHidden():判断文件是否隐藏

boolean

isAbsolute():判断是否是绝对路径

boolean

canExecute():判断文件可否执行

boolean

canRead():判断文件是否可读

boolean

canWrite():判断文件是否可写

获取信息

String

getName():获取文件名

String

getParent():获取文件路径

String

getPath():获取封装进对象的路径

File

getAbsoluteFile():获取绝对路径文件对象

String

getAbsolutePath():获取绝对路径

long

lastModified():获取最后修改时间

long

length():获取大小

static File[]

listRoots():静态方法,获取系统可用根目录

String[]

list():获取目录中文件的文件名

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常用方法

String

getProperty(String key):通过key获取value信息

void

load(InputStream inStream):从字节流加载键值对信息

void

load(Reader reader):从字符流加载键值对信息

Object

setProperty(String key, String value):设置键值对信息

void

store(OutputStream out, String comments):将键值对信息导入到字节流

void

store(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: }

 

 
分类: 

转载地址:http://qgxel.baihongyu.com/

你可能感兴趣的文章
pgpool 简明使用教程
查看>>
安装CentOS 6.5时出现detecting hardware然后就停止不动解决
查看>>
Linux自学笔记——nsswitch and pam
查看>>
mysql 启动失败 和 php路径错误 以及 php 无法显示的问题
查看>>
[深入理解文件系统之八]SVR4中的Page Cache
查看>>
AGG第三十课 image transformations位图转换
查看>>
路由器的配置及其功能
查看>>
linux|权限修改chmod和chown
查看>>
Caffe:深入分析(怎么训练)
查看>>
再次深入到ip_conntrack的conntrack full问题
查看>>
linux如何使用find命令查找文件
查看>>
SQL Server 2012 创建数据库快照
查看>>
DNS子域的授权
查看>>
C++鲜为人知的符号
查看>>
隐式游标返回结果
查看>>
继续蹂躏linux
查看>>
Windows Phone 7中的Tombstoning
查看>>
python读写csv文件的实战
查看>>
“开源”创造者为你论述这一术语的前世今生
查看>>
BeanShell脚本接口之this引用接口类型
查看>>