文件重命名和删除错误

时间:2013-10-16 08:38:09

标签: java file-handling file-rename

我正在尝试修改文件中的数据。在检查是否已成功删除并重命名文件时,它始终显示“未成功更改”。

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帮助!!

1 个答案:

答案 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");

} //转移结束