Properties
构造方法摘要Properties() 创建一个无默认值的空属性列表
特有功能:String getProperty(String key) 根据键获取对应的值。等同于Map中的get()功能;
Object setProperty(String key, String value) 添加键值对。等同于Map中的put()功能;
Set<String> stringPropertyNames()返回此属性列表中的键集。等同于Map中的keySet功能。
public static void main(String[] args) {
// 创建Properties集合
Properties prop = new Properties();
// 添加元素
// Object setProperty(String key, String value) 添加键值对。等同于Map中的put()功能
prop.setProperty("龙哥", "龙嫂");
prop.setProperty("郭靖", "黄蓉");
prop.setProperty("令狐冲", "东方不败");
prop.setProperty("杨过", "小龙女");
// String getProperty(String key) 根据键获取对应的值。等同于Map中的get()功能
System.out.println(prop.getProperty("杨过"));
// 遍历集合
// Set<String> stringPropertyNames()返回此属性列表中的键集。等同于Map中的keySet功能
Set<String> keys = prop.stringPropertyNames();
for( String key : keys){
String value = prop.getProperty(key);
System.out.println(key + " -- " + value);
}
}
Properties与流相关的操作
void store(OutputStream out, String comments) 把Properties的数据写到流中
void store(Writer writer, String comments)
void load(InputStream inStream) 从输入流中读取属性列表
void load(Reader reader)
public static void main(String[] args) throws IOException {
// 把数据写到本地
// write();
// 从本地加载数据
read();
}
// 演示:读取数据
public static void read() throws IOException {
// 创建Properties集合
Properties prop = new Properties();
// void load(InputStream inStream) 从输入流中读取属性列表
// prop.load(new FileInputStream("heros.info"));
prop.load(new FileReader("heros.info"));
// 遍历集合
Set<String> keys = prop.stringPropertyNames();
for (String key : keys) {
String value = prop.getProperty(key);
System.out.println(key + " -- " + value);
}
}
// 演示:写出数据
public static void write() throws IOException {
// 创建Properties集合
Properties prop = new Properties();
// 添加元素
prop.setProperty("龙哥", "龙嫂");
prop.setProperty("郭靖", "黄蓉");
prop.setProperty("令狐冲", "东方不败");
prop.setProperty("杨过", "小龙女");
// 写出到流中
// void store(OutputStream out, String comments) 把Properties的数据写到流中
// prop.store(new FileOutputStream("heros.info"), "They are heros!");
prop.store(new FileWriter("heros.info"), "They are heros!");
}
FileUtils
apache为我们提供一个方便文件操作的工具类,在commons包下的FileUtils类。
maven地址:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
读/写文件:
/* 写文件
* 1.这里只列出3种方式全参数形式,api提供部分参数的方法重载
* 2.最后一个布尔参数都是是否是追加模式
* 3.如果目标文件不存在,FileUtils会自动创建
* */
File file = new File("D:/aa/bb/cc.txt");
//static void:write(File file, CharSequence data, String encoding, boolean append)
FileUtils.write(file, "程序换api","UTF-8",true);
//static void:writeLines(File file, Collection<?> lines, boolean append)
List<String> lines=new ArrayList<String>();
lines.add("www.baidu.com");
lines.add("mp.csdn.net");
FileUtils.writeLines(file,lines,true);
//static void:writeStringToFile(File file, String data, String encoding, boolean append)
FileUtils.writeStringToFile(file, "csdn", "UTF-8",true);
//读文件
//static String:readFileToString(File file, String encoding)
System.out.println(FileUtils.readFileToString(file, "UTF-8"));
//static List<String>:readLines(File file, String encoding)
System.out.println(FileUtils.readLines(file, "UTF-8")); //返回一个list
删除文件/文件夹:
//删除目录
//static void:deleteDirectory(File directory)
FileUtils.deleteDirectory(new File("D:/test/aps"));
//删除目录/文件夹
//static boolean:deleteQuietly(File file)
FileUtils.deleteQuietly(new File("D:/test/aps.txt"));
移动 文件/文件夹:
//移动文件 或 文件夹 ,将"D:/文档/cxyapi2"文件夹移动到"D:/"下面,并重命名为"D:/cxyapi3",若"D:/cxyapi3"存在报异常
//static void:moveDirectory(File srcDir, File destDir)
FileUtils.moveDirectory(new File("D:/文档/cxyapi2"), new File("D:/cxyapi3")); //注意这里 第二个参数文件不存在会引发异常
//移动文件 或 文件夹 ,将"D:/文档/cxyapi2"文件夹移动到"D:/cxyapi3"下面,并重命名为"D:/cxyapi3",若"D:/cxyapi3"存在报异常
//static void:moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)
FileUtils.moveDirectoryToDirectory(new File("D:/文档/cxyapi2"), new File("D:/cxyapi3"),true);