从 Android 中的文本文件中读取双精度类型的数据

Read data of type double from a text file in Android

我想从先前指定的文件夹中读取保存在 .txt 文件中的双精度类型的数据。我已经实现了以下代码来读取数据,然后将它们放入名为 savg1 的 double 类型数组中。当我 运行 我的应用程序时,它会崩溃并且应用程序停止。我尝试逐步调试应用程序,发现当代码到达 savg1[i] = Double.parseDouble(str).

时发生崩溃
public void filereader()
{

    InputStream is=this.getResources().openRawResource(R.raw.nums);
    BufferedReader br=new BufferedReader(new InputStreamReader(is));
    String str=null;
    int i=0;
    try
    {
        if (is !=null)
        {
            str=br.readLine();
            while (str != null) {
                savg1[i] = Double.parseDouble(str);
                i++;
                str=br.readLine();
            }
            is.close();
            br.close();
        }
    } catch (IOException e)
    {
        e.printStackTrace();
    }

}

我是 Android 开发的新手,请原谅我的基本问题。谁能指导我如何解决这个问题?

使用以下代码从您的文件中读取数据。请注意,在此方法中,每个数字都应在单独的行中:

    double svg1[] = new double[10];

    try {
        InputStream is = getResources().openRawResource(R.raw.data);
        DataInputStream dis = new DataInputStream(is);
        while (dis.available() > 0) {
            String test = dis.readLine();
            double a = Double.parseDouble(test);
        }
    }catch (Exception e){
        e.printStackTrace();
    }

You can use file scanner for reading double type data saved in a text file as bellow:

public void fileReader(){

   Scanner scan;
   File file = new File("resources\scannertester\data.txt");
   int idx = 0;
   try {
       scan = new Scanner(file);
       while(scan.hasNextDouble())
           savg1[idx++] = scan.nextDouble();
   } catch (FileNotFoundException error) {
        error.printStackTrace();
   }
   scan.close();
}