📄 bank.java
字号:
}else{
try {
f.createNewFile();
this.viewOneAccount();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
protected void deleteAllAccount()//删除所有账户数据的方法
{
File f=new File("E:/bankdata.txt");//创建File实例
if(f.exists())
{
try {
PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter(f)));
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
pw.write("");//向bank.txt中写入一个空字符串即可
pw.close();
System.out.println("所有帐户已成功删除!");
System.out.println("\n按回车键继续....");
br.read();
AtmBank atm=new AtmBank();
atm.manageMenu2_2();
pw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
try {
f.createNewFile();
this.deleteAllAccount();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
protected void clearData(){//清除所有数据,写这个方法为了删除唯一帐户用到的
File f=new File("E:/bankdata.txt");//创建File实例
if(f.exists())
{
try {
PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter(f)));
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
pw.write("");//向bank.txt中写入一个空字符串即可
pw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
protected void deleteOneAccount()//删除唯一账户信息
{
String allstr="";//文件中所有的字符串放在allstr里
String searchstr1="";//找到该姓名数据的行
String replacestr=""; //删除数据行后的所有字符串放在replacestr里
boolean flag=false;
File f=new File("E:/bankdata.txt");
if(f.exists())
{
try{
BufferedReader br=new BufferedReader(new FileReader(f));
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
RandomAccessFile raf=new RandomAccessFile(f,"rw");
System.out.println("请输入你要删除账户的姓名:");
String str=br.readLine();
String searchstr=br1.readLine();
while(str!=null){
String[] info=str.split("\n");
for(int i=0;i<info.length;i++)
{
if(info[i].indexOf(searchstr)!=-1){//若字符串中包含要删除的姓名
searchstr1=info[i];
flag=true;
System.out.println("帐户已成功删除");
}
allstr+=info[i]+"\n";
}
str=br.readLine();
}
if(flag==false){
System.out.println("没有这个帐户!");
}
replacestr=allstr.replaceFirst(searchstr1, "");//把要删除的字符串置为空即可
//System.out.println(replacestr);
this.clearData();
raf.writeBytes(replacestr+"\n");
System.out.println("\n按回车键继续....");
br1.read();
AtmBank atm=new AtmBank();
atm.manageMenu2_2();
br.close();
}catch(Exception e){
e.printStackTrace();
}
}else{
try {
f.createNewFile();
this.deleteOneAccount();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
protected void changeAccount(){//修改账户信息.........本人认为这里最难....特别是逻辑上的顺序和修改卡号和修改密码~!
String searchstr1="";//要修改的整个行数据
String allstr="";//文件中读出的全部字符串,注意这里不能为null
String replacenamestr="";//修改后的全部字符串(修改姓名的)
String replacecardstr="";//修改后的全部字符串(修改卡号的)
String replacepasswordstr="";//修改后的全部字符串(修改密码的)
String namestr="";//修改后姓名
String cardstr="";//修改后的卡号
String passwordstr="";//修改后的密码
String str1="";//去掉姓名后的字符串
String str2="";//去掉姓名和卡号的字符串,即密码
String str3="";//得到姓名和卡号的字符串
int len=0;
int len1=0;
boolean flag=false;
AtmBank atm=new AtmBank();
File f=new File("E:/bankdata.txt");
if(f.exists()){
try{
BufferedReader br=new BufferedReader(new FileReader(f));
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
RandomAccessFile raf=new RandomAccessFile(f,"rw");
System.out.println("请输入你要修改帐号的姓名:");
String changestr=br1.readLine();
String str=br.readLine();
while(str!=null){
String[] info=str.split("\n");
for(int i=0;i<info.length;i++)
{
if(info[i].indexOf(changestr)!=-1){
searchstr1=info[i];
flag=true;
}
allstr+=info[i]+"\n";
}
str=br.readLine();
}
if(flag==false){
System.out.println("没有这个帐户");
}else{
System.out.println("帐户存在!");
System.out.println("按回车键继续......");
br1.readLine();
System.out.println("################################");
System.out.println("-------中国农业银行 银行管理端---------");
System.out.println("-------1,修改姓名-----------");
System.out.println("-------2,修改卡号-----------");
System.out.println("-------3,修改密码-----------");
System.out.println("-------4,返回-----------");
System.out.println("################################");
System.out.println("请输入你的选择:");
try{
String numstr=br1.readLine();
int num=Integer.parseInt(numstr);
switch(num)
{
case 1:
System.out.println("请修改姓名:");
namestr=br1.readLine();
replacenamestr=allstr.replaceFirst(searchstr1, searchstr1.replaceFirst(changestr, namestr));
this.clearData();
raf.writeBytes(replacenamestr);
System.out.println("帐户已成功修改!");
break;
case 2:
System.out.println("请修改卡号:");
cardstr=br1.readLine();
len=changestr.length();
str1=searchstr1.substring(len);
//System.out.println(str1);
len1=(changestr+"\t\t"+cardstr).length();
str2=searchstr1.substring(len1);
replacecardstr=allstr.replaceFirst(searchstr1, changestr+"\t\t"+cardstr+"\t\t"+str2);
this.clearData();
raf.writeBytes(replacecardstr);
System.out.println("帐户已成功修改!");
break;
case 3:
System.out.println("请修改密码:");
passwordstr=br1.readLine();
len=changestr.length()+1;//1是制表符占一个字符
str3=searchstr1.substring(0,len+4);//向前找四个字符(但愿不要遇到密码字符)
replacepasswordstr=allstr.replaceFirst(searchstr1,str3+"\t"+passwordstr);
this.clearData();
raf.writeBytes(replacepasswordstr);
System.out.println("帐户已成功修改!");
break;
case 4:
//AtmBank atm=new AtmBank();
atm.manageMenu2();
break;
default:
System.out.println("选择错误.请重新选择!");
System.out.println("按回车键继续.......");
br1.read();
this.changeAccount();
}
br.close();
}catch(Exception e){
System.out.println("您输入的不是数字,请重新输入!");
System.out.println("按回车键继续.......");
br1.read();
this.changeAccount();
}
}
System.out.println("\n按回车键继续....");
br1.read();
//AtmBank atm=new AtmBank();
atm.manageMenu2();
}catch(Exception e){
e.printStackTrace();
}
}else{
try {
f.createNewFile();
this.changeAccount();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -