Java 写入或读取文件
我正在尝试编写一个程序,用户可以选择将数据写入文件或读取文件 我不知道为什么我的if-else-if结构不能正常工作。当我试图查看数据时,程序会显示数据,然后在不应该的时候要求更多的输入 我将发布我所拥有的,希望有人能帮助解决看似愚蠢而简单的问题Java 写入或读取文件,java,bluej,Java,Bluej,我正在尝试编写一个程序,用户可以选择将数据写入文件或读取文件 我不知道为什么我的if-else-if结构不能正常工作。当我试图查看数据时,程序会显示数据,然后在不应该的时候要求更多的输入 我将发布我所拥有的,希望有人能帮助解决看似愚蠢而简单的问题 import java.util.Scanner; import java.io.*; public class Candy { public static void main(String[] args) throws IOExce
import java.util.Scanner;
import java.io.*;
public class Candy
{
public static void main(String[] args)
throws IOException
{
String candyname;
String input="";
//create scanner object
Scanner keyboard=new Scanner(System.in);
System.out.print("[V]iew or [A]ppend Database (V or A)?===>");
String choice=keyboard.nextLine();
if (choice.equalsIgnoreCase("V"))
{
//open the file
File file=new File("candy");
Scanner inputFile=new Scanner(file);
//display the lines
while (inputFile.hasNext())
{
//read a line
candyname=inputFile.nextLine();
//display a line
System.out.println(candyname);
}
//close the file
inputFile.close();
System.out.println("\nComplete!");
}
else if (choice.equalsIgnoreCase("A"));
{
//open the file
FileWriter fwriter=new FileWriter("candy", true);
System.out.println("Type 'end' to STOP entering names\n");
do
{
//get the name of the candy
System.out.print("Enter the name of the candy===>");
candyname=keyboard.nextLine();
if (candyname.equalsIgnoreCase("end"))
{
//break; //breaks out of loop
//or use a null if clause (empty)
}
else if (!(candyname.equalsIgnoreCase("end")))
{
//append to file
PrintWriter outputFile=new PrintWriter(fwriter);
outputFile.println(candyname);
}
}while (!(candyname.equalsIgnoreCase("end")));// || candyname !="END");
//close the file
fwriter.close();
System.out.println("\nComplete!");
}
}
}
因为你的else if关闭了
else if (choice.equalsIgnoreCase("A"));
删除分号强>
else if (choice.equalsIgnoreCase("A"))
因为你的else if关闭了
else if (choice.equalsIgnoreCase("A"));
删除分号强>
else if (choice.equalsIgnoreCase("A"))
您是否尝试过在调试器中单步执行代码?如果结构工作不正常,您所说的
是什么意思?请解释..提示:使用“V”.equalsIgnoreCase(choice)
而不是choice.equalsIgnoreCase(“V”)
来消除出现NullPointerException的可能性。不确定这是什么问题。OP发布了一个SSCCE,完美地说明了这个问题。诚然,术语并不准确,但您所要做的就是运行提供的代码以查看问题。您是否尝试在调试器中单步执行代码?如果结构工作不正常,您所说的是什么意思?请解释..提示:使用“V”.equalsIgnoreCase(choice)
而不是choice.equalsIgnoreCase(“V”)
来消除出现NullPointerException的可能性。不确定这是什么问题。OP发布了一个SSCCE,完美地说明了这个问题。诚然,术语并不准确,但您所要做的就是运行提供的代码来查看问题。在您发布它的第二天就发现了这一点!好时机:)+1好眼力。我在找类似的东西,但看不见+感谢你为我节省了无限的时间。。。!你一贴出来就发现了!好时机:)+1好眼力。我在找类似的东西,但看不见+感谢你为我节省了无限的时间。。。!