Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的线圈怎么了?_Java_Loops - Fatal编程技术网

Java 我的线圈怎么了?

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

我目前正试图读取一个文件并相应地存储它们。我已经从文本文件中读取了帧号,并将它们存储到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());            
    }       
}
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");
}

啊,我明白了。我以为它会用新值替换当前值。谢谢