gpt4 book ai didi

java - VM 在静态方法上终止

转载 作者:行者123 更新时间:2023-12-01 06:04:34 24 4
gpt4 key购买 nike

public static void main()     {
String fileName = "cardNumbers.txt";
String line = null;
try {
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null)
{
CreditCard card = new CreditCard(line);
if (card.creditCardType().equalsIgnoreCase("Unknown"))
{
System.out.println("Card number " + card.getCardNumber() + "is an unknown credit card type.");
}
else if (card.isValid())
{
System.out.println(card.creditCardType() + " number" + card.getCardNumber() + " is valid.");
}
else if (!card.isValid())
{
System.out.println(card.creditCardType() + " number " + card.getCardNumber() + " is not valid.");
}
}
}
catch (FileNotFoundException ex)
{
System.out.println("file not found exception thrown");
}
catch (IOException ex)
{
System.out.println("error while reading the file");
}
finally
{
System.exit(0);
}
}

当我运行这个方法时,它只是说ProcessCardNumbers.main(); VM 终止。 而不是实际打印出内容。

如果我在函数的最开始处或在finally block 中添加打印,它们就会被打印。

我不确定为什么会发生这种情况或如何解决它。

最佳答案

正如您告诉我们的:

Adding a println at the start is printed

Adding a println in the finally works too

我们可以推断您的代码正在运行。只是当您到达 while((line = bufferedReader.readLine()) != null) 时,line 保持 null,因此您永远不会输入 while。

这是为什么呢?好吧,您的文件一开始可能是空的。如果不是,请仔细检查文件的编码:它可能没有使用正确的返回符号,因此没有“完成的行”。

关于java - VM 在静态方法上终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47569093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com