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流中的flush()的神秘面纱

    大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存. ...

  4. Java IO流中的File类学习总结

    一.File类概述 File类位于java.io包中,是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹. File类有多种重载的构造方法.File类保存文件或目录的各种 ...

  5. java IO流实现删除文件夹以及文件夹中的内容

    这篇主要是对IO文件流对文件常用处理中的删除文件夹,平时我们直接删除文件夹既可以删除里面的全部内容. 但是java在实现删除时,只能是文件才会被删除. 所以这里需要定义一个方法,来递归调用方法(递归调 ...

  6. java Io流输出指定文件的内容

    package com.hp.io; import java.io.*; public class  BufferedReaderTest{ /** *@param   想想 */ public st ...

  7. 【Java IO流】File类的使用

    File类的使用 Java中的File类是在java.io.File中,Java.IO.File类表示文件或目录. File类只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. 一 ...

  8. JAVA IO流编程 实现文件的写入、写出以及拷贝

    一.流的概念 流:数据在数据源(文件)和程序(内存)之间经历的路径. 输入流:数据从数据源(文件)到程序(内存)的路径. 输出流:数据从程序(内存)到数据源(文件)的路径. 以内存为参照,如果数据向内 ...

  9. java IO流之——File类知识总结和面试

    File类描述的是一个文件或文件夹.(文件夹也可以称为目录).该类的出现是对文件系统的中的文件以及文件夹进行对象的封装.可以通过对象的思想来操作文件以及文件夹.可以用面向对象的处理问题,通过该对象的方 ...

随机推荐

  1. time | sys | os 模块,递归删除文件,项目分析

    一,复习 ''' 1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块 ...

  2. python_字符串常用方法

    1.切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚). a = 'ABCDEFGHIJK' print(a[0:3]) # print(a[:3]) 从开头开 ...

  3. 【Codeforces 329B】Biridian Forest

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 找到出口到每个点的最短距离. 设你到出口的最短距离为temp 那么如果某个人到终点的距离<=temp,则他们肯定能遇到你 因为他们可以在 ...

  4. Android BottomSheet:List列表或Grid网格展示(3)

     Android BottomSheet:List列表或Grid网格展示(3) BottomSheet可以显示多种样式的底部弹出面板风格,比如常见的List列表样式或者Grid网格样式,以一个例子 ...

  5. Bzoj3038 上帝造题的七分钟2 并查集

    Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 1135  Solved: 509 Description XLk觉得<上帝造题的七分钟>不太 ...

  6. 解决json_encode中文乱码

    在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode,输出结果的时候在用函数urldecode()转回来

  7. 找宝箱 (bfs)

    Problem Description 作为一个强迫症患者,小 Y 在走游戏里的迷宫时一定要把所有的宝箱收集齐才肯罢休.现在给你一个 N *M 的迷宫,里面有障碍.空地和宝箱,小 Y 在某个起始点,每 ...

  8. POJ 3468_A Simple Problem with Integers(线段树)

    题意: 给定序列及操作,求区间和. 分析: 线段树,每个节点维护两个数据: 该区间每个元素所加的值 该区间元素和 可以分为"路过"该区间和"完全覆盖"该区间考虑 ...

  9. [bzoj5379]Tree_dfs序_线段树_倍增lca

    Tree bzoj-5379 题目大意:给定一棵$n$节点的树.支持:换根.把节点$u$和$v$的$lca$的子树加.询问$u$的子树和. 注释:$1\le n,q\le 3\times 10^5$. ...

  10. cogs——644. 课程安排问题

    644. 课程安排问题 ★   输入文件:curriculum.in   输出文件:curriculum.out   简单对比时间限制:1 s   内存限制:128 MB 问题描述 一个软件专业的学生 ...