[英]Whats wrong with my loop?
我目前正在尝试读取文件并进行相应的存储。 我已经从文本文件中读取了它们,并将其存储到arraylist中,现在我只是想存储帧号,但是当我打印出arrayList的内容时,我一直得到相同的帧号。
我的文本文件的内容
FrameNumber: 49136
FrameNumber: 49137
FrameNumber: 49138
FrameNumber: 49139
FrameNumber: 49140
FrameNumber: 49141
288
200
3848
287
191
3859
283
145
3849
我的readfile函数
public void readFile()
{
ArrayList<Frame> frameList = new ArrayList<Frame>();
ArrayList<Joint> jointList = new ArrayList<Joint>();
ArrayList<String> al = new ArrayList<String>();
Frame retrievedFrame = new Frame();
Joint tempJoint = new Joint();
Coordinate tempCoordinate = new Coordinate();
try
{
File file = new File(filename);
if(!file.exists())
{
file.createNewFile();
}
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
BOMSkipper.skip(bufferedReader);
String line = bufferedReader.readLine();
while (line != null)
{
al.add(line);
line = bufferedReader.readLine();
}
bufferedReader.close();
}
catch (IOException e)
{
e.printStackTrace();
}
String temp;
for (int i = 0; i < al.size(); i++)
{
if (al.get(i).contains("FrameNumber:") == true)
{
temp = al.get(i).replace("FrameNumber: ", "");
temp = temp.trim();
retrievedFrame.setFrameNumber(Integer.parseInt(temp));
frameList.add(retrievedFrame);
System.out.println("Frame Detected");
}
else
{
System.out.println("Not Frame");
}
}
for (int j = 0; j < frameList.size(); j++)
{
System.out.println(frameList.size());
System.out.println("Frame Number: " + frameList.get(j).getFrameNumber());
}
}
您只创建一个Frame
。 您可以使用Frame retrievedFrame = new Frame();
创建Frame
Frame retrievedFrame = new Frame();
然后为每一行更改该帧的帧号,然后将其再次添加到列表中。
您可能想要的是每次创建一个新的Frame
:
if (al.get(i).contains("FrameNumber:")) {
temp = al.get(i).replace("FrameNumber: ", "");
temp = temp.trim();
Frame retrievedFrame = new Frame();
retrievedFrame.setFrameNumber(Integer.parseInt(temp));
frameList.add(retrievedFrame);
System.out.println("Frame Detected");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.