`

java中的Properties类疑惑

阅读更多

  今天有人问怎么把属性文件中的键对值存储到集合中,本人想到的就只有Properties类了,个人感觉Properties类类似Map集合(Hashtable吧,一样的枚举遍历
Properties:
Enumeration en=p.propertyNames();
while(en.hasMoreElements()){
String userName=(String) en.nextElement();
String userPass=p.getProperty(userName);
System.out.println(userName+"------->"+userPass);
}

,有关Map集合看我其他java博客)

以下是一些有关知识点记录:
Java中系统属性就是Java的环境变量
System.getProperties()方法会返回系统属性值。
System.getProperty()方法返回一个String来代表系统属性。
在命令行中可用java –D来加入一个系统属性

Properties类实现了从名字到值的映射
propertyNames()方法返回一个包含所有属性名的Enumeration对象
getProperty()方法返回一个代表该属性值的字符串
使用load()或store()方法能从文件读入属性集或将属性集写入文件
Properties在java.util包中

CRUD实例:
三个类(以前写的,也不知道错没错。。。请大虾们多多担待。。。)
package com.softeem.properties;

import java.io.File;
import java.io.IOException;

public class User {
public static void main(String[] args){
System.out.println("*************欢迎进入我的系统*************");
new Oper().getTime();
setFile();
IOUni io=new IOUni();
int number=io.dowork();
io.number(number);
}

public static void setFile(){
File file=new File(Oper.PATH);
if(!file.isFile()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.softeem.properties;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.Properties;


public class Oper {

public static final String PATH="D:/user.txt";
//返回Properties对象
public Properties getProperties(){
Properties p=new Properties();
InputStream is=null;
try {
is=new FileInputStream(PATH);
p.load(is);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(is!=null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return p;
}

//写入文件
public void setProperties(Properties p){
PrintStream ps=null;
try {
ps=new PrintStream(new File(PATH));
p.list(ps);
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
if(ps!=null){
ps.close();
}
}
}

//遍历文件内容
public void setEunmration(Properties p){
Enumeration en=p.propertyNames();
while(en.hasMoreElements()){
String userName=(String) en.nextElement();
String userPass=p.getProperty(userName);
System.out.println(userName+"------->"+userPass);
}
getTime();
}

//每次操作后的提示内容
public void information(){
System.out.println("操作后的文件内容为:");
}

//删除文件数据
public void delete(){
Properties p=getProperties();
p.remove("a");
p.remove("b");
setProperties(p);
information();
setEunmration(p);
}

//增加数据操作
public void add(){
Properties p=getProperties();
p.setProperty("小龙", "19");
p.setProperty("波哥", "24");
setProperties(p);
information();
setEunmration(p);
}

//修改文件属性
public void upData(){
Properties p=getProperties();
p.setProperty("小龙", "haha");
p.setProperty("波哥", "lala");
setProperties(p);
information();
setEunmration(p);
}

//文件数据打印
public void list(){
Properties p=getProperties();
setEunmration(p);
}

//帮助提示问候语
public void help(){
getTime();
System.out.println("谢谢您的使用!");
}

//系统当前时间
public void getTime(){
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yy/MM/dd HH:mm:ss E");
System.out.println(sdf.format(date));
}
}
package com.softeem.properties;

import java.util.Scanner;

public class IOUni {

public void number(int number){
switch(number){
case 1: new Oper().list();dowork();
case 2: new Oper().add();dowork();
case 3: new Oper().upData();dowork();
case 4: new Oper().delete();dowork();
case 5: new Oper().help();dowork();
case 6: System.out.println("欢迎下次再来!");
new Oper().getTime();break;
default: System.err.println("输出的数据不正确--请重新输出!");
dowork();
}
}
public int dowork(){
Scanner s=new Scanner(System.in);
// System.out.println("*************欢迎进入我的系统*************");
System.out.println("|****************************************|");
System.out.println("请选择要输出的功能选项:");
System.out.println("|1.用户列表  2.增加用户  3.修改密码   4.删除用户|");
System.out.println("|5.帮助                              6.退出系统|");
System.out.println("|****************************************|");
String str=s.nextLine();
int number=Integer.parseInt(str);
return number;
}
}
有错误的地方请大虾们指点指点哈1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics