📄 mydatabasebean.java
字号:
package Communication;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.util.*;
public class myDatabaseBean
{
private myPersonBean r[]=new myPersonBean[1000];
private myPersonBean selected;
private int i=0; //计数
public myDatabaseBean()
{
readDatabase();
}
public int getPersonCount() //返回计数
{
return i;
}
public myPersonBean r(int a) //返回实体
{
return r[a];
}
public myPersonBean getPersonInfo(String name)//根据姓名在查找该人的信息
{
selected=new myPersonBean();
for(int k=1;k<=this.getPersonCount();k++)
{
if(r[k].name==name)
selected=r[k];
}
return selected;
}
public String getMode(myPersonBean person) //根据实体获取试题所在分组
{
String m="分组";
if(person.mode==1)
m="我的好友";
else if(person.mode==2)
m="我的亲人";
else if(person.mode==0)
m="我的同学";
return m;
}
public void readDatabase() //读取数据文件
{
try
{
i=0;
String info;
BufferedReader br=new BufferedReader(new FileReader("database.txt"));
try
{
while((info=br.readLine())!=null)
{
//记录计数
if(!info.equals(""))
{
i++;
StringTokenizer st=new StringTokenizer(info,",");
r[i]=new myPersonBean();
r[i].name=st.nextToken().toString().intern();
r[i].address=st.nextToken().intern();
r[i].mobilephone=st.nextToken().intern();
r[i].homephone=st.nextToken().intern();
r[i].QQ=st.nextToken().intern();
r[i].email=st.nextToken().intern();
r[i].mode=Integer.parseInt(st.nextToken().intern());
if(st.nextToken().toString().equalsIgnoreCase("true"))
r[i].sex=true;
else
r[i].sex=false;
}
}
br.close();
}
catch(IOException e){}
}
catch(FileNotFoundException e){}
}
public void addPersonIntoDatabase(myPersonBean addedperson) //添加一个人追加到数据库文件中
{
try
{
//随即访问文件(读写方式访问)
RandomAccessFile raf=new RandomAccessFile("database.txt","rw");
raf.seek(raf.length());
//定位到文件末尾
String s=addedperson.name+","+addedperson.address+","+addedperson.mobilephone+","+
addedperson.homephone+","+addedperson.QQ+","+addedperson.email+","
+addedperson.mode+","+addedperson.sex;
raf.writeBytes("\r\n");
//先回车再换行
raf.write(s.getBytes());
//按字节序列将该字符串写入该文件。
raf.close();
i++;
}
catch(IOException e){}
}
public int getRowForPerson(String name) //获取信息在文件中的条目数
{
for(int k=1;k<=getCount();k++)
{
if(r[k].name==name)
return k;
}
return 0;
}
public int getCount() //获取当前读入的人数
{
return i;
}
public void deletePerson(String name)
//根据姓名删除该用户
{
try
{
int row=getRowForPerson(name);
File f=new File("update.txt"); //过渡文件
BufferedReader br=new BufferedReader (new FileReader("database.txt"));
BufferedWriter bw=new BufferedWriter(new FileWriter("update.txt"));
String s;
int count=1;
if(row==1)
{
//即跳过第一行
br.readLine();
}
while((s=br.readLine())!=null)
{
bw.write(s);
bw.write("\r\n");
count++;
if(count==row)
{
br.readLine();
}
}
bw.flush();
i--;
}
catch(FileNotFoundException E)
{}
catch(IOException ee){}
writeBackToDatabase();
}
public void writeBackToDatabase()
{
try
{
BufferedReader br=new BufferedReader(new FileReader("update.txt"));
BufferedWriter bw=new BufferedWriter(new FileWriter("database.txt"));
String s;
while((s=br.readLine())!=null)
{
if(!s.equals(""))
{
bw.write(s);
bw.newLine();
}
}
bw.flush();
bw.close();
}
catch(FileNotFoundException E)
{}
catch(IOException ee){}
}
public static void main(String args[])
{
myDatabaseBean mdbb=new myDatabaseBean();
mdbb.deletePerson("你好吗");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -