2014-04-27 77 views
0

我試圖做一個雙線性插值爲此,我要讀它包含一個N×M的尺寸txt文件。TXT文件到第二陣列(二維陣列)

我需要閱讀的specyfic行和列中的值,我覺得兩個選項:

  • 直接從閱讀txt文件知道在哪一列和行嘗試該值。任何想法,如果可能的話?

  • 的,另外,閱讀所有的文件和第二陣列上存儲,然後讀取所需的值指向精確列和行第二陣列上。

該文件將每個值與一個doble空間分開。我認爲文件必須存儲在資產上否?我會感謝FOT任何代碼或文檔(我沒搞清楚)提前

感謝;)

回答

0

您好最後予讀出的二維陣列:

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

感謝所有)

0

您的應用程序肯定會跑得更快,如果你的價值觀工作之前txt文件加載到一個二維數組。從持久存儲打開東西需要比在內存中查找更長的時間。

取決於你可能耗盡內存數組的大小,這時候你就需要多一點聰明約你讀入內存中的文件的部分並在每個階段的工作。

在計算器上有很多questions大約從Java中的文本文件中讀取二維數組,它應該是在Android的類似。