该程序从file.txt中读取并将文件中的数据分配给数组元素。现在我不知道文件将有多少行,因此我无法初始化数组大小,也不想使用arrayList。
有没有一种方法可以计算文件中的行数并将该数字分配给数组大小?
文件中数据的示例:
Item 2333 $283
Item 2343 $363
Item 2655 $243
Item 2853 $223
计数后,数组大小将设置为4。
请客气,我是初学者。提前致谢。
您可以考虑几个选项。
选项1每次溢出时调整数组大小
private static final int INITIAL_SIZE = 10;
private static final int INCREMENT = 5;
String[] lines = new String[INITIAL_SIZE];
int amountOfLinesRead = 0;
// loop until end of file
// read line
if(amountOfLinesRead == lines.length) {
lines = resizeArray(lines);
}
lines[amountOfLinesRead++] = line;
public String[] resizeArray(final String[] originalArray) {
// create bigger array
String[] newArray = new String[originalArray.length + INCREMENT];
// copy array
for(int amountOfLinesCopied = 0; amountOfLinesCopied < originalArrayString.length ; amountOfLinesCopied++) {
newArray[amountOfLinesCopied] = originalArray[amountOfLinesCopied];
}
return newArray;
}
选项2。浏览文件两次,一次用于计数多少行,一次用于处理行
int amountOfLines;
// read lines until end of file is reached
amountOfLines ++;
// create array
String[] lines = new String[amountOfLines];
// loop again
// put lines in the array
选项3.将标头行添加到包含一些元数据的文件中,在这种情况下为行数(这并不罕见)
// read first line of file
// get the amountOfRecords field from the line
String[] lines = new String[amountOfRecords]
int amountOfLinesInArray = 0;
// loop through file till end of file
if(amountOfLinesInArray >= amountOfRecords) {
// error! header information was corrupt!
} else {
lines[amountOfLinesInArray++] = line;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句