我正在尝试修改文件中的数据。在检查是否已成功删除并重命名文件时,它始终显示“未成功更改”。
public void transfer()
{
File temp=new File("temp.dat");
File supply=new File("supply.dat");
boolean rename=temp.renameTo(supply);
boolean delete=supply.delete();
if(delete && rename)
Sopln("Successfully Changed");
else
Sopln("Not Successfully Changed");
}//transfer end
这里是我调用此方法的switch-case块。
Sopln("Modify :-");
Sopln("1)Preffered Period");
Sopln("2)Preffered Class");
Sopln("3)Exit");
int option;
do
{
option=Check_Int("Enter Your Choice");
int ctr=0;
switch(option)
{
case 1: Sopln("______________________________");
String name=Check_String("Enter The Name Of The Teacher Whose Details You Want To Change");
String record;
while((record=fr.readLine())!=null)
{
String token[]=record.split("-");
if(name.equalsIgnoreCase(token[0]))
{
Sopln("Your Current Info:");
Sopln("Name : "+token[0]);
Sopln("Preffered Period : "+token[3]);
Sopln("Enter Your New Preffered Period");
token[3]=br.readLine();
pw.println(token[0]+"-"+token[1]+"-"+token[2]+"-"+token[3]+"-"+token[4]);
ctr++;
}//if block end
else
{pw.println(record);}
}//while loop end
if(ctr==0)
{Sopln("Not Found");
submenu();
}
else
{
ctr=0;
transfer();
}
fr.close();
pw.close();
break;
case 2: Sopln("______________________________");
String name_class=Check_String("Enter The Name Of The Teacher Whose Details You Want To Change");
String record_class;
int cnt=0;
while((record_class=fr.readLine())!=null)
{
String token[]=record_class.split("-");
if(name_class.equalsIgnoreCase(token[0]))
{
Sopln("Your Current Information:-");
Sopln("Name : "+token[0]);
Sopln("Preffered Class : "+token[4]);
Sopln("Enter Your New Preffered Class");
token[4]=br.readLine();
pw.println(token[0]+"-"+token[1]+"-"+token[2]+"-"+token[3]+"-"+token[4]);
cnt++;
}//if block end
else
{pw.println(record_class);}//else block end
}//while loop end
if(cnt==0)
{Sopln("Name Not Found!");
submenu();}
else
{
cnt=0;
transfer();
}//else block end
fr.close();
pw.close();
break;
case 3: main_menu mm=new main_menu();
mm.menu();
break;
}
}while(option<0 || option>2);
}//change method end
所以,当我检查我的文档时,临时文件是通过必要的修改创建的,但是,文件没有被重命名,也没有删除原始的Supply文件。 Plz帮助!!
答案 0 :(得分:0)
您首先重命名,然后创建一个新的文件变量&amp;然后删除。简单的解决方案。
public void transfer()
{ //重新命名文件 文件temp =新文件(“temp.dat”); 文件供应=新文件(“supply.dat”); boolean rename = temp.renameTo(supply);
//delete file
File f = new File("supply.dat");
boolean delete=supply.delete();
if(delete && rename)
Sopln("Successfully Changed");
else
Sopln("Not Successfully Changed");
} //转移结束