⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileutil.java

📁 java编写的一个简易通讯录,用的是Swing组件开发的界面,Properties属性文件用作保存数据,能用于初学者贯通java面向对象开发思想,并有很强扩展性,比如将DAO层换为数据库,将表示层换为
💻 JAVA
字号:
package com.lovo.testminibook.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Vector;

import com.lovo.testminibook.model.LinkMan;

public class FileUtil {
	
	public  static void main(String args[]){
		FileUtil fu = new FileUtil();
		
//		Map<String, LinkMan> users = fu.getUsers();
//		
//		Set<String> userNumberSet = users.keySet();
//		
//		for(String number : userNumberSet){
//			LinkMan lm = users.get(number);
//			System.out.println(lm);
//		}
		
		
		Map<String, LinkMan> tempmap = new HashMap<String, LinkMan>();
		
		LinkMan lm1 = new LinkMan("t53001", "张三", "男", 18,
				"青羊区", "13333333333");
		LinkMan lm2 = new LinkMan("t53002", "张四", "男", 18,
				"青羊区", "13333333333");
		LinkMan lm3 = new LinkMan("t53003", "张五", "男", 18,
				"青羊区", "13333333333");

		
		tempmap.put(lm1.getNumber(), lm1);
		tempmap.put(lm2.getNumber(), lm2);
		tempmap.put(lm3.getNumber(), lm3);

		
		fu.write(tempmap);
		
	}
	private String filePath="user.dat";
	private String path=System.getProperty("user.dir")+System.getProperty("file.separator")+"save";
	private Map<String,LinkMan> user=null;

	public FileUtil(){
		initialize();
		this.user=read();
		
	}
	
	public Vector<Vector<Comparable>> getDateVector() {
		Vector<Vector<Comparable>> vo=new Vector<Vector<Comparable>>();
		Map<String,LinkMan> tempUser=this.getUser();
		Set<String> temp=tempUser.keySet();
		for(String number:temp){
			LinkMan lm=tempUser.get(number);
			vo.add(this.LinkManToVector(lm));
		}
		return vo;

	}
	
	public Vector<String> getHeadVector(){
		Vector<String> vo=new Vector<String>();
		vo.add("学号");
		vo.add("姓名");
		vo.add("性别");
		vo.add("年龄");
		vo.add("住址");
		vo.add("电话");
		return vo;
	}

	public Map<String, LinkMan> getUser() {
		return user;
	}
	

	public boolean hasUserNumber(String number){
		if(this.user.get(number)!=null){
			return true;
		}else{
			return false;
		}
	}
	
	private void initialize() {
		File file=new File(path);
		if(file.exists()){
			if(file.isFile()){
				file.delete();
				file.mkdirs();
			}
		}else{
			file.mkdirs();
		}
	}

	public Vector<Comparable> LinkManToVector(LinkMan lm){
		Vector<Comparable> vo=new Vector<Comparable>();
		vo.add(lm.getNumber());
		vo.add(lm.getName());
		vo.add(lm.getSex());
		vo.add(lm.getAge());
		vo.add(lm.getAddress());
		vo.add(lm.getPhone());
		return vo;
	}

	private Map<String, LinkMan> read() {
		File file=new File(path+System.getProperty("file.separator")+filePath);
		Map<String,LinkMan> tempMap=new HashMap<String,LinkMan>();
		if(file.isFile()){
			try {
				InputStream is=new FileInputStream(file);
				ObjectInputStream ois=new ObjectInputStream(is);
				tempMap=(Map<String,LinkMan>) ois.readObject();
				ois.close();
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return tempMap;
	}

	public void setUser(Map<String, LinkMan> user) {
		this.user = user;
	}
	
	public void write(Map<String,LinkMan> user){
		File file=new File(path+System.getProperty("file.separator")+filePath);
		try {
			OutputStream os=new FileOutputStream(file);
			ObjectOutputStream oos=new ObjectOutputStream(os);
			oos.writeObject(user);
			oos.flush();
			oos.close();	
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -