将文件发送到第二个数组(二维数组)



我正在尝试进行双线性插值,为此我必须读取包含NxM维度的txt文件。

我需要读取特定行和列的值,我认为有两个选项:

  • 直接从txt文件中读取该值,知道尝试在哪一列和哪一行。如果可能的话,你知道吗?

  • 另一种方法是,读取所有文件并存储在第二个数组中,然后读取指向第二个阵列上确切列和行的所需值。

该文件用多臂空间分隔每个值。我认为该文件必须存储在资产上,不是吗?我将感谢任何代码或文档(我没有找到)

提前感谢;)

如果在使用值之前将txt文件加载到2D数组中,您的应用程序肯定会运行得更快。从持久存储中打开某个东西要比在内存中查找它花费更长的时间。

根据数组的大小,您可能会耗尽内存,这时您需要更加聪明地确定在每个阶段要处理文件的哪些部分。

StackOverflow上有很多关于从Java文本文件中读取2D数组的问题,在Android中应该类似。

嗨,最后我读到一个二维数组为:

public double[][] readArray2D(Context c, String file,int rows,int cols) throws IOException {
    double [][] data = new double[rows][cols];
    int row = 0;
    int col = 0;
    BufferedReader bufRdr  = null;
    try {
        bufRdr = new BufferedReader(new InputStreamReader(c.getAssets().open(file)));
    } catch (IOException e) {
        e.printStackTrace();
    }
    String line = null;
    //read each line of text file
    try {
        while((line = bufRdr.readLine()) != null && row < data.length)
        {
            StringTokenizer st = new StringTokenizer(line," ");
            while (st.hasMoreTokens())
            {
                //get next token and store it in the array
                data[row][col] = Double.parseDouble(st.nextToken());
                col++;
            }
            col = 0;
            row++;
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return data;
}

感谢所有人;)

相关内容

  • 没有找到相关文章

最新更新