最近在写程序的时候,需要存些临时的数据信息,但是又不想存在数据库中.所以就存在磁盘上的某个文件中.存取的格式为properties
该代码在存取properties的时候,是追加存取.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
public class FileUtil {
// 设置文件存取的路径
public static String path = "C:/logs/tmp.properties";
// 检测文件及路径是否存在,不存在则创建该文件及相关路径
static{
try{
int index = path.lastIndexOf("/");
String path1 = path.substring(0,index);
File file = new File(path1);
if(!file.exists() && !file .isDirectory()){
file.mkdirs();
}
file = new File(path);
if(!file.exists()){
file.createNewFile();
}
}catch (Exception e){
e.printStackTrace();
}
}
// 根据键获取值
public static String getValue(String key, String defaultValue) {
try{
Properties properties = new Properties();
// 加载文件,获取值
properties.load(new FileInputStream(path));
return properties.getProperty(key,defaultValue);
}catch (Exception e){
e.printStackTrace();
}
return null;
}
public static void setValue(String key, String value) {
FileOutputStream outputStream = null;
try{
Properties properties = new Properties();
// 加载文件
properties.load(new FileInputStream(path));
// 设置新值
properties.setProperty(key,value);
outputStream = new FileOutputStream(path);
// 将修改后的值保存
properties.store(outputStream,"保存数据");
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if(outputStream != null){
outputStream.close();
outputStream = null;
}
}catch (Exception e){
e.printStackTrace();
}
}
}
// 根据Key删除相应的值
public static void remove(String key) {
FileOutputStream outputStream = null;
try{
Properties properties = new Properties();
properties.load(new FileInputStream(path));
properties.remove(key);
outputStream = new FileOutputStream(path);
properties.store(outputStream,"保存数据");
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if(outputStream != null){
outputStream.close();
outputStream = null;
}
}catch (Exception e){
e.printStackTrace();
}
}
}
// 测试
public static void main(String [] args){
setValue("aaa","aaa");
setValue("bbb","bbb");
remove("bbb");
System.out.println(getValue("aaa",null));
System.out.println(getValue("bbb","bca"));
}
}