gpt4 book ai didi

Java 在同一位置找到一个文件,但找不到另一个文件

转载 作者:行者123 更新时间:2023-12-02 04:54:25 28 4
gpt4 key购买 nike

    import java.io.*;               //Importing to read from file.
import java.util.Scanner; //Importing Scanner class.
import java.text.DecimalFormat; //Importing DecimalFormat class.


public class StockAssessment
{
public static void main(String[] args) throws IOException
{
System.out.println("Joe Williams");

// Setting up DecimalFormat.
DecimalFormat money = new DecimalFormat("$###.##");

// Setting up the scanner.
Scanner keyboard = new Scanner(System.in);

/*
Prompting for the file name and initalizing
it to fileName.
*/
System.out.print("Name of the file? ");
String fileName = keyboard.nextLine();

//Opening the file.
File theFile = new File(fileName);
Scanner inputFile = new Scanner(theFile);

//Making sure the file exists.
if (!theFile.exists())
{
System.out.println("========================");
System.out.println("No transactions processed.");
System.exit(0);
}

//Getting data from stock file.
while (inputFile.hasNext())
{
String str = inputFile.nextLine();
int shareAmount = inputFile.nextInt();
double purchasePrice = inputFile.nextDouble();
double purchCommissRate = inputFile.nextDouble();
double salePrice = inputFile.nextDouble();
double saleComiss = inputFile.nextDouble();
}
inputFile.close();

}

}

我不明白为什么这段代码会找到一个文件而不是另一个文件,如果它们都在源代码所在的文件夹中。代码不完整,我有一个方法等待放入代码,但这要求我能够打开 Java 目前无法找到的文件。如果有人能让我知道如何解决这个问题,我将不胜感激。

<小时/>
Name of the file? StockData.txt
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at StockAssessment.main(StockAssessment.java:46)
Press any key to continue . . .
<小时/>

一个标题为 EmptyFile.txt,另一个标题为 StockData.txt。它识别空文件,但不识别股票数据

DELL: Dell Inc
125 25.567 0.025 28.735 0.025
MSFT: Microsoft
34.1 -15.75 0.012 15.90 0.013
GOOG: Google
56.5 58.125 0.032 67.975 0.030
IBM: IBM Corp
87.3 8.875 0.015 7.500 0.020

最佳答案

在您的 StockData.txt 中,shareAmount 并非适用于所有公司的 int。例如,

MSFT: Microsoft
34.1 ...
GOOG: Google
56.5 ...

因此,要么将金额列为整数,要么使用nextDouble() 来读取它们。

String str = inputFile.nextLine();

// cast to int; 34.1 becomes 34
int shareAmount = (int) inputFile.nextDouble();

关于Java 在同一位置找到一个文件,但找不到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28912941/

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