ファイル内のデータを変更しようとしています。ファイルが正常に削除され、名前が変更されたかどうかを確認している間、常に「変更に失敗しました」と出力されます。
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
そのため、ドキュメントを確認すると、必要な変更を加えた一時ファイルが作成されますが、ファイルの名前が変更されたり、元のサプライ ファイルが削除されたりすることはありません。助けてください!!