【发布时间】:2016-07-22 13:29:36
【问题描述】:
我正在编写我的第一个 android 应用程序,所以我是一个新手,对将数据从文件获取到数组的最佳方法感到困惑。我正在尝试从资源原始 txt 文件中获取数据并将其存储在数组或 ArrayList 中,以便我可以执行 excel 样式的 vlookup。数据文件 (data_file.txt) 的大小为 28,2,第一列有一个 int,第二列有一个浮点数,通过这样的空格分隔:
- 500 -1.3
- 1000 -1.6
- 10000 -1.7
我希望能够查找 1000 的值并得到 -1.6。
首先,我应该使用多维对象数组还是ArrayList,我使用哪一个重要吗?我需要保持第二列的数据类型为 float,如果可能的话,我想保持第一列的数据类型为 int。
我正在寻找有关代码的提示和/或我需要研究的方法。
干杯,
空气修复
4 月 3 日更新
我很确定地图不是我想要的。我一直在研究下面的代码。除了Scanner scan = new Scanner(new FileReader(file)); 之外,它似乎可以工作,我在文件变量上得到一个“无法解析构造函数FileReader(int)。显然它把我的文件视为一个 int,而实际上它只是一个普通的 txt 文件,如示例中所示. 仍在寻求帮助完成。谢谢:)
public void fuelIndex (){
Object file = (getResources().getIdentifier("fuel_index",
"raw", getPackageName()));
Scanner scan = new Scanner(new FileReader(file));
Object[][] fuelIndexData = new String[28][2];
int i = 0;
while(scan.hasNextLine()){
fuelIndexData[i] = scan.nextLine().split("\\s+");
i++;
}
//loops through the file and splits on any space
for (int row = 0; row < fuelIndexData.length; row++) {
for (int col = 0; col < fuelIndexData[0].length; col++) {
if(fuelIndexData[row][col] != null){
System.out.print(fuelIndexData[row][col] + " " );
}
}
if(fuelIndexData[row][0] != null){
System.out.print("\n");
}
}
}
【问题讨论】:
-
如果你只有一个键和一个值,也许你可以使用 HashMap。
标签: java android arrays arraylist multidimensional-array