java - 如何计算文件中的数字总和?

标签 java android filereader

我想在 TextView 中显示从一个文件添加的所有数字的总和,目前它只读取/显示文件中的最后一个数字。

这是我当前写入文件的代码:

total.setText(total.getText());                            
        try {
            FileOutputStream fos = openFileOutput("TotalSavings", Context.MODE_PRIVATE);
            fos.write(total.getText().toString().getBytes());
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

这是我当前读取文件的代码:

public void savingstotalbutton(View view) {

        try {
            BufferedReader inputReader = new BufferedReader(new InputStreamReader(
                    openFileInput("TotalSavings")));
            String inputString;
            StringBuffer stringBuffer = new StringBuffer();                
            while ((inputString = inputReader.readLine()) != null) {
                stringBuffer.append(inputString + "\n");
            }
            savingstotaltext.setText(stringBuffer.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }               
    }

谁能告诉我怎么做?

最佳答案

假设行中只有一个整数,你不能做这样的事情吗?

public void savingstotalbutton(View view) {

    int total = 0;

    try {
        BufferedReader inputReader = new BufferedReader(new InputStreamReader(
                openFileInput("TotalSavings")));
        String inputString;
        StringBuffer stringBuffer = new StringBuffer();                
        while ((inputString = inputReader.readLine()) != null) {
            //stringBuffer.append(inputString + "\n");
            total = total + Integer.parseInt(inputString);
        }
        //savingstotaltext.setText(stringBuffer.toString());
        savingstotaltext.setText(String.ValueOf(total));
    } catch (IOException e) {
        e.printStackTrace();
    }               
}

编辑:评论中每个问题的扩展答案

只需将 int total 更改为 double total 并将 Integer.parseInt() 更改为 Double.parseDouble()如果您使用小数。此外,如果行中的字符多于数字/小数,请尝试使用以下命令仅删除并使用数字,并确保行中有内容:

if (inputString.length() > 0) {
    String line = inputString.replaceAll("[^0-9.]", "");
    total = total + Double.parseDouble(line);
}

关于java - 如何计算文件中的数字总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13253361/

相关文章:

android - 如何将背景屏幕一直设置为墙纸?

Android - 如何在评分栏中放置 5 个不同的笑脸

java - 使用 contains() java 读取大文件并进行过滤

java - 使用 xstream 生成子类从 xml 解码

java - struts使用.class?

java - 在 javafxports android 项目中查找配置文件时出现问题

javascript - reader.readAsArrayBuffer 失败的原因是什么?

java - 用于读取文件的 Java File+Scanner 对象和 FileReader 对象有什么区别?

带有方法调用的 Java 8 过滤器

java - 如何使用 printf 分隔多个小数并将所有这些数字四舍五入到小数点后两位