从Android

时间:2016-09-16 14:33:53

标签: android android-studio readfile android-file

我想从先前指定的文件夹中读取保存在.txt文件中的double类型的数据。我已经实现了以下代码来读取数据,然后将它们放入一个名为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开发新手,请原谅我的基本问题。任何人都可以指导我如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

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

    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();
    }

答案 1 :(得分:0)

  

您可以使用文件扫描程序读取保存在文本文件中的双重类型数据,如下所示:

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();
}