【问题标题】:Read data of type double from a text file in Android从 Android 中的文本文件中读取 double 类型的数据
【发布时间】:2016-09-16 14:33:52
【问题描述】:

我想从先前指定的文件夹中读取保存在 .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 开发的新手,所以请原谅我的基本问题。谁能指导我如何解决这个问题?

【问题讨论】:

  • 一个明显的原因是数组太小,你得到的索引越界异常
  • 我的数组长度是 1000000,我的文本文件编号是 1000000,我不认为这是问题所在。
  • 你得到的错误是什么?
  • 没有任何错误,但是当我在手机上运行它时,应用程序停止并退出。

标签: android android-studio readfile android-file


【解决方案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();
    }

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢,但是我应该如何设置文件路径以及我应该将文件放在哪里?这是真的吗? " C:\Users\Hanieh\Desktop\nums.txt :
    • 是的,其他明智的检查如何在扫描仪类中设置路径
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    相关资源
    最近更新 更多