0

ファイル内のデータを変更しようとしています。ファイルが正常に削除され、名前が変更されたかどうかを確認している間、常に「変更に失敗しました」と出力されます。

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

そのため、ドキュメントを確認すると、必要な変更を加えた一時ファイルが作成されますが、ファイルの名前が変更されたり、元のサプライ ファイルが削除されたりすることはありません。助けてください!!

4

1 に答える 1