2015-02-04 1 views
0
import java.util.*; 
import java.io.*; 
import java.text.DecimalFormat; 

Моя проблема в том, что как только он запустит цикл, он просто считывает первую строку в файле и записывает ее бесконечно много раз.Filereader не переходит к следующей строке

То, что я хочу, чтобы это, чтобы перейти к следующей строке и так далее

(код в основном то, что я хочу, но это еще не закончено)

public class Lab0234 
{ 
    public static void main(String [] args) throws FileNotFoundException 
    { 
     DecimalFormat two = new DecimalFormat("00.00"); 

     Scanner keyboard = new Scanner(System.in); 
     Scanner inputFile = new Scanner(new FileReader("Lab02Input.txt")); 

     double sPrice = inputFile.nextDouble(); 
     double sOwned = inputFile.nextDouble(); 
     double aDiv = inputFile.nextDouble(); 
     double mValue; 
     double mYield; 

     mValue = getValue(sPrice, sOwned); 
     mYield = getYield(sPrice, aDiv); 

     PrintWriter reportFile = new PrintWriter("Lab02Report.txt"); 

     reportFile.println("Stock Value and Yield Report"); 
     reportFile.println(""); 
     reportFile.print("Stock "); 
     reportFile.print("Price "); 
     reportFile.print("Shares "); 
     reportFile.print("Value "); 
     reportFile.print("Dividend "); 
     reportFile.println("Yield"); 

     while(inputFile.hasNext()) 
     { 
     if (inputFile.hasNext()) 
     { 
      reportFile.print("  "); 
      reportFile.print(sPrice+" "); 
      reportFile.print(sOwned+" "); 

      getValue(sPrice, sOwned); 
      reportFile.print(two.format(mValue)+" "); 
      reportFile.print(aDiv+"  "); 

      getYield(sPrice, aDiv); 
      reportFile.println(two.format(mYield)+" "); 

      inputFile.close(); 
      reportFile.close(); 

     } 

     /*else 
     { 
      inputFile.close(); 
      reportFile.close(); 
     }*/ 
     } 

     //inputFile.close(); 
     //reportFile.close(); 

    } 

    public static double getValue(double sPrice, double sOwned) 
     { 
     //DecimalFormat two = new DecimalFormat("00.00"); //Decimal format 
     double mValue; 

     mValue = (sPrice * sOwned); 
      //System.out.printf("Stock Value is " + mValue); 

     return mValue; 
     } 

     public static double getYield(double sPrice, double aDiv) 
     { 
     //DecimalFormat two = new DecimalFormat("00.00"); //Decimal format 
     double mYield; 

     mYield = (aDiv * sPrice); 
      //System.out.printf("\nDividend Yield is " + two.format(mYield)); 

     return mYield; 
     } 
} 
+0

Я думаю, вам действительно нужно называть что-то вроде inputFile.next() или что-то подобное, вероятно, – Quintonn

ответ

0

Вы никогда не называйте следующими() на вашем файл_ввода:

while(inputFile.hasNext()) 
    { 
    String x = inputFile.next(); 
    if (inputFile.hasNext()) 
0

Try это сделать, как этот

try { 
    BufferedReader br = new BufferedReader(new FileReader(filePath)); 
    String line; 
    while ((line = br.readLine()) != null) { 
     // do somthing 
    } 
    br.close(); 
} catch (Exception e) { 
    System.out.print("Problem!"); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^