Ich versuche, eine Reihe von Strings und Doubles (die sich in Arrays befinden) aus einer Datei mit einer End-of-File-Schleife zu laden. Die Ausgabe zeigt die ersten beiden Zeilen in der Datei und gibt einen Fehler aus. Jede Hilfe/Eingabe wäre super. Vielen Dank.
package lab08;
import java.util.Scanner;
import java.io.*;
public class array {
public static void main(String[] args)throws IOException {
String mealName[];
double mealPrice[];
mealName = new String [3];
mealPrice = new double[3];
LoadArraysFromFile(mealName, mealPrice);
}
//Load Arrays From File
public static void LoadArraysFromFile(String mealName[], double mealPrice[]
)throws IOException{
File mealInfoFile;
Scanner mealFileSC;
mealInfoFile = new File("mealInfoFile.txt");
mealFileSC = new Scanner(mealInfoFile);
while (mealFileSC.hasNext()){
int i = 0;
mealName[i] = mealFileSC.nextLine();
System.out.println(mealName[i]);
mealPrice[i]= mealFileSC.nextDouble();
System.out.println(mealPrice[i]);
i++;
}
mealFileSC.close();
}
Die Datei.
#1 T-shirt
4.99
#2 Pants
5.99
#3 Jacket
6.99
Sie haben die Werte in Ihrer while-Schleife nicht richtig konvertiert.
Ich habe das geändert:
while (mealFileSC.hasNext()){
int i = 0;
mealName[i] = mealFileSC.nextLine();
System.out.println(mealName[i]);
mealPrice[i]= mealFileSC.nextDouble();
System.out.println(mealPrice[i]);
i++;
Dazu:
while (mealFileSC.hasNext()) {
int i = 0;
mealName[i] = mealFileSC.nextLine().toString();
System.out.println(mealName[i]);
mealPrice[i] = Double.valueOf(mealFileSC.nextLine());
System.out.println(mealPrice[i]);
i++;
}
So sollte es funktionieren.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen