这个问题困扰我已经一个星期了。
我需要从我正在读取的文件的最后一列获取值。但是当我在while循环之外尝试读取该数组时,我得到的是零而不是实际的值。
但如果我在while循环内读取同一个数组,我可以完美地获取到值。
BufferedReader br2 = new BufferedReader(new FileReader("/home/manofsteel/yeast_training.txt")); // 开始逐行读取文件。 while((line = br2.readLine()) != null) { row = 0; String[] valsNew = line.trim().split("\\s+"); /* 去除所有空格,因为文件中包含很多空格。 */ cla = new int[lines]; cla[row] = Integer.parseInt(valsNew[8]); /* 8 是因为我需要最后一列的值。 */ row++; } for(int i=0;i<cla.length;i++) { // 尝试打印回该数组。 System.out.println("x"+cla[i]); }}
我得到的输出是
x0 x0 x0x0
我想要的输出是
x4 x1 x1 x1 x2 x7 x2 x7
欢迎任何建议。
如果你认为我需要分享输入文件,请告诉我。
谢谢。
回答:
我认为这永远不会工作,因为你用来存储数据的数组在每次迭代中总是被重新初始化:
cla = new int[lines];
另外,我不确定你是否总想在每次执行新迭代时将row设置为零(因为最后你做了row++;):
row = 0;