JAVA基础之IO流(二)Properties,序列化,File类

Properties

实际上就是Map集合,存储的是属性,属性以键值对的方式存储,

这里的键和值都必须是字符串,不需要考虑泛型

  • 优点

①以键值对的形式存储数据

②内部针对属性的存储封装了大量的专有方法:load,store,list

  • Properties基础

键值对的读取,存值分隔符,: 空格都可以

setProperty(string1,string2) //存值

getProperty(key) //通过key取value值

  • Properties获取系统属性

Properties properties=System.getProperties();

对于系统属性的更改,实质上并没有更改;只是在这个对象中进行了更改,当再次获取Properties的对象修改属性时,如果内存中有该属性集合的对象,则直接用;

properties.setProperty(string1,string2);

序列化

序列化:将短期存储的数据实现长期存储,这个过程对应的流就是序列化流

  • 进行序列化的步骤–(通过对象的序列化)

①创建一个类

②使用对应的流将对象存入磁盘中—序列化—ObjectOutputStream

③使用对应的流将对象从磁盘中去除放入内存—反序列化—ObjectInputStream

④关闭流

  • 注意点:序列化流在工作时也要关联对应的基本的输入流和输出流
  • 一个类如果没有实现Serializable,进行序列化会报异常:NotSerializableException
  • 实现了Serializable接口的类可以达到的目的:

①可以进行序列化

②进行序列化的类的元素都必须支持序列化

③接口本身没有方法或字段,只是用来表示可序列化的语义

File类

  • 文件:用来操作文件和路径
  • 创建File类的对象(三种方式)

①直接指定文件的绝对路径

File file1=new File("D:\\workspace\\src\\com\\test\\Demo1.java");

file1.createNewFile();

②通过绝对路径和相对路径创建

File file2=new File("D:\\workspace","src\\com\\test\\Demo.java");

file2.createNewFile();

③先得到父路径的对象形式,在跟子路径拼接

File file=new File("D:\\workspace");

File file3=new File(file,"src\\com\\test\\Demo.java");

file3.createNewFile();

  • 在创建文件是,如果当前的文件已经存在了,不回覆盖
  • 创建单层路径,只能创建目录

file3.mkdir();

  • 创建多路径,也可创建单层目录,只能创建目录

file3.mkdirs();

  • 判定是不是文件
file3.isFile()
  • 判定是否是路径
file3.isDirectory()
  • 判断是否隐藏
file3.isHidden()
  • 获取最后修改文件的时间
 long lastTime = file.lastModified();
  • 获取当前主机所有的根目录
File[] files = File.listRoots();

    for (File file : files) {

        System.out.println(file);

    }
  • 获取指定目录下的文件或文件夹 特点:1.只获取的是当层的内容,不管子路径 2.只获取内容的名字,不是全路径
File file = new File("D:\\workspace\\file2");

    String[] strings = file.list();

    for (String string : strings) {

        System.out.println(string);

    }
  • 获取指定目录下的文件或文件夹 的全路径
File[] file2 = file.listFiles();

    for (File file3 : file2) {

        System.out.println(file3);

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值