gpt4 book ai didi

java - 从文件读取输入时,不是文件中的所有行都是用 Java 读取的?

转载 作者:行者123 更新时间:2023-11-30 03:42:32 28 4
gpt4 key购买 nike

因此,对于作业,我必须从文件中读取输入,然后输出它。文件中的信息采用以下格式:第一行包含股票代码,下一行包含购买数量。例如我们要使用的文件:

.ab
15
mox
16
.fy
8
mixe
34

然后我必须输出每个符号的计数和总价格。但不知怎的,当我运行它时,它只读取前 3 组数据 - 在这个例子中只有 3 行数据,而不是 4 行。例如。输出将是:

Enter filename ... lab5data.txt
00000 54.05
00002 Symbol mox does not exist
00003 10.70
00004 Symbol mixe does not exist

我的代码不会输出最后一行“00004符号混合不存在”

这是我的代码:

import java.util.Scanner;
import java.io.PrintStream;
import type.lib.Stock;
import java.io.File;
import java.text.DecimalFormat;
public class Check05B
{
public static void main(String[] args) throws java.io.IOException
{
Scanner input = new Scanner(System.in);
PrintStream output = new PrintStream(System.out);
output.print("Enter filename ... ");
String fileName = input.nextLine();
Scanner fileInput = new Scanner(new File(fileName));
double totalValue = 0;
int count = 00000;
String symbol = fileInput.next();
int quantity = fileInput.nextInt();
while (fileInput.hasNext())
{
Stock myStock = new Stock(symbol);
double total = myStock.getPrice() * quantity;
String aFormatCounter = new DecimalFormat("00000").format(count);
if (myStock.getName() == null)
output.println(aFormatCounter + " Symbol " + symbol + " does not exist!");
else
output.printf("%s %.2f%n", aFormatCounter, myStock.getPrice());
totalValue += total;
symbol = fileInput.next();
count++;
quantity = fileInput.nextInt();
count++;
}
output.printf("Total value = %.2f%n", totalValue);
fileInput.close();
}
}

有人可以帮忙吗?我怎样才能让它读取所有行?谢谢!!

最佳答案

您需要在循环顶部读取symbolquantity

考虑

    while (fileInput.hasNext())
{
String symbol = fileInput.next();
if (fileInput.hasNextInt () == false) {
System.err.println ("File Format Error - expecting an int");
break;
}
int quantity = fileInput.nextInt();
Stock myStock = new Stock(symbol);
double total = myStock.getPrice() * quantity;
String aFormatCounter = new DecimalFormat("00000").format(count);
if (myStock.getName() == null) {
output.println(aFormatCounter + " Symbol " + symbol + " does not exist!");
}
else {
output.printf("%s %.2f%n", aFormatCounter, myStock.getPrice());
}
totalValue += total;
count = count + 2;
}

关于java - 从文件读取输入时,不是文件中的所有行都是用 Java 读取的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26498394/

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