为什么声明没有被执行

时间:2015-04-05 17:13:37

标签: java

此程序要求用户输入文件名。程序搜索是否   文件exsist.if不是exsist,他们可以选择创建文件   或输入另一个文件名进行搜索。但似乎有一条声明没有被执行。

import java.io.PrintStream;
import java.util.Scanner;
import java.io.File;
import java.io.IOException;

class usingexist
{
    static Scanner in=new Scanner(System.in);
    static String select="";
    static String search="";
    static int x;

    public static void main(String[] args)throws IOException
    {
        x=1;

        while(x==1)
       {
            System.out.println("Please the file name you want to search");
            search=in.nextLine();

            File f=new File(search);


            if(f.exists()) // check if file exists
            {
                System.out.println("File Found.");
                x=2;
            }
            else if(!f.exists())  // creates file if dont exsist
            {
                System.out.println("File Not Found.");
                System.out.println("Do you want to create the File ? (Y/N)");
                select=in.nextLine();

                if(select.equals('Y'))
                {
                 f.createNewFile();            // this statement is not beig executed
                 System.out.println("created succesfully");
                 x=2;
                }

            }
            else if (select.equals('N')) // prompts the user to enter another file name
            {
                x=1;
            }
      }

    }
}

2 个答案:

答案 0 :(得分:7)

if(select.equals("Y"))

Y周围放置双引号。您在这里比较两个Strings,而不是字符。

答案 1 :(得分:0)

您应该更改一些代码逻辑,因为您的if语句嵌套不正确。您也应该查看break关键字。

if(f.exists()) // check if file exists
{
    System.out.println("File Found.");
    x=2;
}
else // creates file if dont exsist
{
    System.out.println("File Not Found.");
    System.out.println("Do you want to create the File ? (Y/N)");
    select=in.nextLine();

    if(select.equals("Y"))
    {
        f.createNewFile();            // this statement is not beig executed
        System.out.println("created succesfully");
        x=2;
    }
    else if (select.equals("N")) // prompts the user to enter another file name
    {
        x=1;
    }
}