此程序要求用户输入文件名。程序搜索是否 文件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;
}
}
}
}
答案 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;
}
}