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);
}