gpt4 book ai didi

Java - 想通过eof解析。代码只解析一次

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:28:31 24 4
gpt4 key购买 nike

我下面的代码只解析了一次数据文件。我试图让它解析整个文件。每次找到标记时,解析数据并将其附加到输出文件。目前它成功地解析了一次数据然后停止。在eof之前无法弄清楚如何让它循环。数据是 4 字节对齐的,位于输入二进制文件中。

 private static void startParse(File inFile) throws IOException {
boolean markerFound = false;
for (int offset = 0; !markerFound && offset < 4; offset++){
DataInputStream dis = new DataInputStream(new FileInputStream(inFile));
for (int i = 0; i < offset; i++){
dis.read();
}
try {
int integer;
long l;
while((l = (integer = dis.readInt())) != MARKER) {
//Don't do anything
}
markerFound = true;
for (int i = 0; i < 11; i++){
dis.read();
}

// ********************** data **********************
byte[] data = new byte[1016];
for(int i = 0; i < 1016; i++){
data[i] = (byte) dis.read();
}

for (int i = 0; i < 4; i++){
dis.read();
}

// ***************** output data ********************
if (checksumCheck(checksum) && fecfCheck(fecf)){
FileOutputStream output = new FileOutputStream("ParsedData", true);
try{
output.write(data);
}
finally{
output.close();
}
}

}
catch (EOFException eof) {
}
dis.close();
}
}

最佳答案

markerFound = true;

这一行不在条件语句中,将在任何循环出现时执行。
这当然会关闭你的循环,因为:

for (int offset = 0; !markerFound && offset < 4; offset++)

关于Java - 想通过eof解析。代码只解析一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16968404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com