Java 我的线圈怎么了?
我目前正试图读取一个文件并相应地存储它们。我已经从文本文件中读取了帧号,并将它们存储到arraylist中,现在我只是尝试存储帧号,但当我打印arraylist的内容时,我总是得到相同的帧号 我的文本文件的内容Java 我的线圈怎么了?,java,loops,Java,Loops,我目前正试图读取一个文件并相应地存储它们。我已经从文本文件中读取了帧号,并将它们存储到arraylist中,现在我只是尝试存储帧号,但当我打印arraylist的内容时,我总是得到相同的帧号 我的文本文件的内容 FrameNumber: 49136 FrameNumber: 49137 FrameNumber: 49138 FrameNumber: 49139 FrameNumber: 49140 FrameNumber: 49141 288 200 3848 287 191 3859 283
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());
}
}
public void readFile()
{
ArrayList框架列表=新建ArrayList();
ArrayList jointList=新的ArrayList();
ArrayList al=新的ArrayList();
帧检索帧=新帧();
接头温度接头=新接头();
坐标tempCoordinate=新坐标();
尝试
{
文件=新文件(文件名);
如果(!file.exists())
{
createNewFile();
}
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(新文件InputStream(文件),“UTF-8”);
BOMSkipper.skip(bufferedReader);
String line=bufferedReader.readLine();
while(行!=null)
{
al.添加(行);
line=bufferedReader.readLine();
}
bufferedReader.close();
}
捕获(IOE异常)
{
e、 printStackTrace();
}
字符串温度;
对于(int i=0;i
您只创建了一个帧。使用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");
}
啊,我明白了。我以为它会用新值替换当前值。谢谢