2015-05-18 218 views
0

试图具有平衡量被示出为具有总量的TXT文件增加总量,文本文件的格式如下所示:爪哇从

12 
-10.20 
5.00 

并且为此码循环如下
的主要部分这个我试图有一个总额的余额。和它的返回值,但它似乎打印出0.00,

public static double BalanceCheck(String FileName, String Returned) { 
    try { 
     ArrayList<String> Trains = new ArrayList<String>();   
     int count = 0; 
     double Balance = 0; 
     File file = new File(FileName); 
     FileReader fileReader = new FileReader(file); 
     BufferedReader bufferedReader = new BufferedReader(fileReader); 
     StringBuffer stringBuffer = new StringBuffer(); 
     String line; 
     while ((line = bufferedReader.readLine()) != null) 
     { 


       if(line.startsWith("-")){ 
        String templine = line.replace("-", ""); 
        Balance = Double.parseDouble(templine); 
        Balance -= Balance; 
       } 
       else{ 
        String tempBalance = line; 
        Balance = Double.parseDouble(tempBalance); 
        Balance += Balance; 
       } 
       System.out.println(Balance); 


     } 
    Balance = Double.parseDouble(new DecimalFormat("##.####").format(Balance)); 
    return Balance; 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return (Double) null; 
    } 
+0

解析double应该能够在开始时解析带负数的行,所以您可以简单地每次添加解析的double。另外,我建议使用java.util.Scanner;使用FileInputStream创建扫描器,然后只需调用'scanner.nextDouble()',直到消耗完所有输入('!scanner.hasNextDouble()')。哦,另一个注意事项:Java约定是用于局部变量和参数的初始小写字母(例如'balance','fileName')。 – Luke

+0

呃,什么是'返回的字符串',为什么它没有被使用,为什么你返回null投到一个Double?另外,Double与Double有些不同。并且有一行将Balance转换为格式化的字符串,然后再将其解析为Double;似乎不必要。那里的意图是什么? – Luke

回答

1

这是一些应该做好事的代码。请注意我在原始帖子的评论中突出显示的问题。

public static double getBalance(String fileName) { 
    double balance = 0.0; 
    Scanner scanner = null; 
    try { 
     scanner = new Scanner(new File(fileName)); 
     while (scanner.hasNextDouble()) { 
      balance += scanner.nextDouble(); 
     } 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } finally { 
     if (scanner != null) { 
      scanner.close(); 
     } 
    } 
    return balance; 
} 
+0

嘿,是的,我刚刚重新使用代码,没有明天,所以有一半的东西是多余的。我从来没有使用文件扫描仪。这种更简单的方法 –