2016-04-05 15 views
1

Ich habe viele verschiedene Dinge versucht versucht, dies zur Arbeit zu bekommen. Es tut mir leid für nur eine lahme Frage Ich bin ein totaler Neuling. Wenn ich Informationen von meinem inFile anfordere, muss es in der Reihenfolge sein, in der sich die Daten befinden?Ausnahme im Thread "Haupt" java.util.InputMismatchException Fehlermeldung

Dies ist inData.txt:

10.20 \\\length 
5.35 \\\width 
15.6 \\\radius 
Randy Gill \\\first last name 
31 \\\age 
18500 \\\bank account balance 
3.5 \\\ interest rate 
A \\char 'a' 

soll ich Abmessungen eines Rechtecks ​​drucken, Kreis. Name mit Bankkontodaten. Danke für die Hilfe!

import java.util.*; 
import java.io.*; 


public class ProgrammingExercise3_1 
{ 
    public static void main(String[] args) throws FileNotFoundException 
    { 

     double rectWidth; 
     double rectLength; 
     double radius; 
     int age; 
     double begBal; 
     char A; 
     String name; 
     double rate; 

     Scanner inFile = new Scanner(new FileReader("C:\\Users\\sierr_000\\Desktop\\Sam School\\IT-145\\Exercises\\Ch 3\\inData.txt")); 

     PrintWriter outFile = new PrintWriter("C:\\Users\\sierr_000\\Desktop\\Sam School\\IT-145\\Exercises\\Ch 3\\outData.out"); 

     rectWidth = inFile.nextDouble(); 
     rectLength = inFile.nextDouble(); 

     outFile.println("Rectangle: "); 
     outFile.println("Length = " + rectLength + ", width = " + rectWidth + ", area = " 
        + (rectWidth*rectLength) + ", perimeter = " + (2 * (rectWidth + rectLength))); 

     radius = inFile.nextDouble(); 

     outFile.println("Circle: "); 
     outFile.println("Radius = " + radius + ", area = " + (radius*3.1416) + "Circumfrence = " + (2*3.1416*radius)); 

     name = inFile.next(); 
     age = inFile.nextInt(); 

     outFile.println("Name: " + name + ", age: " + age); 

     begBal = inFile.nextDouble(); 
     rate = inFile.nextDouble(); 

     outFile.printf("Beginning Balance: %.2f %n" , begBal + "interest rate: %.2f" , rate); 
     outFile.println("The character that comes after A in the ASCII is B");  




     inFile.close(); 
     outFile.close(); 

    } 
} 
+0

'" Wenn ich Informationen von meinem inFile anfordere, muss es in der Reihenfolge sein, in der die Daten liegen? "' - Ja, tut es. Das Scanner-Objekt durchsucht Ihre Datei linear, Token für Token. –

Antwort

0

Sie hatten einen guten Start! Ich habe 2 Probleme mit Ihrem Code gefunden, die Probleme verursacht haben.

Die name Variable sollte auf diese Weise zugeordnet werden:

name = inFile.next()+" "+inFile.next(); 

name = inFile.next() nur "Randy" bekommt und die age Variable vermasselt.

Als nächstes Diese Linie wurde verursacht Probleme:

outFile.printf("Beginning Balance: %.2f %n" , begBal + "interest rate: %.2f" , rate); 

ich teilten es in eine Reihe von outFile.print und outFile.printf Aussagen.

outFile.print("Beginning Balance: "); 
    outFile.printf("%.2f %n", begBal); 
    outFile.print("interest rate: "); 
    outFile.printf("%.2f", rate); 

Nach diesen 2 Problemen scheint alles zu funktionieren. Ich hoffe das hilft!

Verwandte Themen