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

Java笔记(二十七)……IO流中 File文件对象与Properties类的更多相关文章

  1. Java IO流中 File文件对象与Properties类(四)

    File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 booleancreateNewFile():创建新文件,如果 ...

  2. IO流中File文件最常用和直接的用法

    一.File (一)概述 1.File: 1)文件和目录(文件夹)路径名的抽象表示形式 2)注意: 可以表示文件夹与文件,即路径与文件 抽象概念,即路径与文件是否存在不确定   2.构造方法 1)Fi ...

  3. Java基础学习笔记二十 IO流

    转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStre ...

  4. java基础9(IO流)-File类

    File类 File:文件和目录路径名的抽象表示形式.即java中把文件或者目录都封装成File对象 代码练习1 import java.io.File; public class FileDemo1 ...

  5. Java进阶(二十七)使用Dom4j解析XML文件

    使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...

  6. 使用Java的多线程和IO流写一个文件复制功能类

    创建一个复制功能类,继承Thread类,重写run()方法,把FileInputStream和FileOutputStream输入输出流写在run()方法内.示例代码如下: import java.i ...

  7. java IO流 (二) IO流概述

    1.流的分类* 1.操作数据单位:字节流.字符流* 2.数据的流向:输入流.输出流* 3.流的角色:节点流.处理流 图示: 2.流的体系结构 说明:红框对应的是IO流中的4个抽象基类.蓝框的流需要大家 ...

  8. Java学习之路(十二):IO流<二>

    字符流 字符流是可以直接读写字符的IO流 使用字符流从文件中读取字符的时候,需要先读取到字节数据,让后在转换为字符 使用字符流向文件中写入字符时,需要把字符转为字节在写入文件 Reader和Write ...

  9. 第54节:Java当中的IO流(中)

    Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ...

随机推荐

  1. PHP学习心得(六)——变量

    PHP 中的变量用一个美元符号后面跟变量名来表示.变量名是区分大小写的.一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线.$this 是一个特殊的变量,它不能被赋值.PH ...

  2. Linux文件保护禁止修改、删除、移动文件等,使用chattr +i保护

    不让用户修改.删除文件等,使用 chattr保护 chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files… 最关键的是在[mode]部分,[m ...

  3. Linux是一门真正的黑客高手艺术

    黑客这个词从诞生到现在,从来就没有解释为“高级入侵者”.“病毒制造者”或者“QQ盗号者”过.我至今不清楚在中国是谁先把黑客和这些无聊的词汇联系在了一起,导致如此多的人被误导.但有一点是肯定的,不负责任 ...

  4. 关于SQL优化的一个小试例子

    原SQL: select ta.serialno,       ta.accepttime,       ta.subsnumber,       ta.subsname,       ta.cont ...

  5. Python开发轻量级爬虫

    这两天自学了python写爬虫,总结一下: 开发目的:抓取百度百科python词条页面的1000个网页 设计思路: 1,了解简单的爬虫架构: 2,动态的执行流程: 3,各部分的实现: URL管理器:p ...

  6. unity3d游戏开发(一)——圈圈叉叉

    参考:http://game.ceeger.com/forum/read.php?tid=1719 ———————————————————开始————————————— 好吧,吹了那么多我们开始吧,先 ...

  7. 一步步学习ASP.NET MVC3 (2)——入门程序

    请注明转载地址:http://www.cnblogs.com/arhat 在上一节中,我们只是简单的介绍了什么是MVC及MVC的运行原理.而本节呢,主要来实现下一ASP.NET MVC3的开发流程,并 ...

  8. 用JAVA实现数字水印(可见)

    数字水印有可见不可见之分,可见的比如课件上印有学校校徽,微博发图片会水印上上传者的信息及微博logo等. 用java实现可见的数字水印,草人主要是用到了java.awt包中的AlphaComposit ...

  9. [JavaScript] 怎么使用JS禁止复制粘贴

    1. 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格键右边的windows键也可以激活这个快捷菜单 <table border oncontextmenu=re ...

  10. cocos2d-html5 Layer 和 Scene 创建模式

    var myLayer = cc.Layer.extend({ init:function() {//2 界面 var bRet = false; if (this._super()) { bRet ...