IO流复习总结(四) Properties、FileUtils

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

猜你喜欢

转载自blog.csdn.net/qq_36154832/article/details/88819929