Java笔记(二十七)……IO流中 File文件对象与Properties类
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():判断文件是否可写
获取信息
File
getAbsoluteFile():获取绝对路径文件对象
String
getAbsolutePath():获取绝对路径
long
lastModified():获取最后修改时间
long
length():获取大小
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常用方法
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: }
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 ...
随机推荐
- Windows下使用cmd启动Oracle EM和sql命令使用+主机身份认证
(1)cmd命令下使用sql命令 >sqlplus / as sysdba sql>select * from v$version; (2)cmd命令下启动Oracle EM 安装完ora ...
- IOS中利用宏将RGB值转换为UIColor(转)
可以在pch文件中定义宏,这样整个项目就都可以用了! #define UIColorFromRGBValue(rgbValue) [UIColor colorWithRed:((float)((rgb ...
- linux系统管理
系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo ...
- 关于tabBar的图片不能正常显示问题
可以先把图片的源文件的名称后面加上@2x 这种图片显示不正常问题原因可能是没有二倍图造成的!!
- Python标准库与第三方库详解(转载)
转载地址: http://www.codeweblog.com/python%e6%a0%87%e5%87%86%e5%ba%93%e4%b8%8e%e7%ac%ac%e4%b8%89%e6%96%b ...
- Ubuntu使用apt-get安装本地deb包
我们都喜欢使用apt-get,因为它实在是让我们大大的省心.但是,有时候我们会为网速慢,安装源不好而烦恼,所以我们可能会将一些常用软件包的deb文件保存在本地以备不时之需.当然了使用dpkg也可以直接 ...
- sqlite优化记录:建立索引加快查询速度
凡是数据库中,索引的存在就是为了提高查询速度的,数据库的索引有点类似于书本上面的目录的概念,因为在英文中都是index,事实上也就是目录. 其算法应该叫做“倒排索引”,这个其实也类似于搜索引擎里面的基 ...
- javaScript Code 用javascript确定每月第二个星期五
废话少说只就上Code: 说明:getDay()方法获取星期(这里的星期是从0到6).参见:http://www.w3school.com.cn/js/js_obj_date.asp 中的ge ...
- POJ2201+RMQ
/* RMQ */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<algo ...
- POJ2200+全排列模拟
简单. 手动的实现全排列 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<a ...