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基础笔记

转载于:https://www.cnblogs.com/jiangzhaowei/p/7391263.html

Java IO流中 File文件对象与Properties类(四)相关推荐

  1. java IO流读取保存图片文件

    java  IO流读取保存图片文件 package io; import java.io.BufferedInputStream; import java.io.BufferedOutputStrea ...

  2. Java IO流以及File类

    目录 File类概述 File类常用方法 IO流 io流分类 Writer字符输出流 覆盖写入 追加写入 Reader字符输入流 字节流 字节输出流 覆盖写入 字符输入流 文件的拷贝 字符流文件的拷贝 ...

  3. 一篇文章总结java IO流(File、字节流、字符流、特殊操作流)

    目录 1.File 1.1 File类概述和构造方法 1.2 File类创建功能 1.3 File类删除功能 1.4 File类判断和获取功能 2.字节流 2.1 IO流概述和分类 2.2 字节流写数 ...

  4. java io流读取txt文件_Java使用IO流读取TXT文件

    通过BufferedReader读取TXT文件 window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputS ...

  5. Java IO流之普通文件流和随机读写流区别

    普通文件流和随机读写流区别 普通文件流:http://blog.csdn.net/baidu_37107022/article/details/71056011 FileInputStream和Fil ...

  6. java io 创建文件夹_Java中Io流操作-File类的常用操作-创建文件,创建文件夹

    package com.hxzy.IOSer; import java.io.File; import java.io.IOException; public class Demo03 { publi ...

  7. java byte char io流_一文带你看懂JAVA IO流,史上最全面的IO教学

    原标题:一文带你看懂JAVA IO流,史上最全面的IO教学 一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符 ...

  8. java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦

    一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...

  9. javaio流_一文带你看懂JAVA IO流,史上最全面的IO教学啦

    一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...

最新文章

  1. 关于pycharm右键只能选择run Unit不能直接run的解决方法
  2. [转] 使用模板自定义 WPF 控件
  3. linux vss rss区别,关于VSS / RSS / PSS / USS的解释是否准确?
  4. Pyinstaller将Python程序打包成EXE(多种模式的打包)
  5. Java中集合(五)Set
  6. 我来说说java的NIO
  7. 同步方法 调用异步防范_.NET Web应用中为什么要使用async/await异步编程?
  8. 【Flink】Flink 使用 ParameterTool 进行传参
  9. int 和String之间的互转
  10. 20. Magento 创建新闻模块(1)
  11. 高校学籍管理系统(SQL Server数据库课程设计)
  12. 专题开发十三:JEECG微云高速开发平台-附录
  13. APP测试---adb命令使用(monkey、input、11大事件等),附按键表(keycode)
  14. 合同原件、传真件、扫描件法律效力解析
  15. ckeditor拖拽添加html,CKEditor插入HTML
  16. 用什么擦地最干净脑筋急转弯_你没想过的“脑筋急转弯”,才是启发孩子智力的法宝(附资源下载)...
  17. 2020哈工程上岸初复试经验
  18. Lodash的一些基本使用
  19. Js设置动态的key指
  20. 基于面向对象与UML的学籍管理系统设计

热门文章

  1. 留学申请计算机硕士个人陈述,申请美国计算机专业英文个人陈述
  2. 【深度学习】深入浅出神经网络框架的模型元件(常用层和卷积层)
  3. python 之属性_Python之对象的属性
  4. aspose.words 合并相同值的单元格_合并相同的单元格,你用了1小时,同事只要30秒,还支持自动刷新...
  5. 2020年网站优化思路从哪着手?
  6. 百度实名制后如何进行网站优化?
  7. 哪一类功率放大电路效率最高_电路分析基础(8)-最大功率传输与阻抗匹配分析...
  8. 宏基微型计算机c650使用方法,c650卧式车床的控制系统的pc控制改造毕业设计正文.doc...
  9. led灯条串联图_飞利浦32寸LED液晶显示器故障维修记
  10. 开发日记-20190428