Skip to content

Instantly share code, notes, and snippets.

@steevehook
Created December 25, 2019 21:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save steevehook/8e6f79aa627fee0a63d6949a572d9d68 to your computer and use it in GitHub Desktop.
Save steevehook/8e6f79aa627fee0a63d6949a572d9d68 to your computer and use it in GitHub Desktop.
func findJSONEnd(file *os.File, end byte) int64 {
fileInfo, err := file.Stat()
if err != nil {
log.Fatalf("could not read file stat: %v", err)
}
size := fileInfo.Size()
var ret int64
for i := 1; i <= int(size); i++ {
bs := make([]byte, 1)
r, err := file.Seek(-int64(i), io.SeekEnd)
if err != nil {
log.Fatalf("could not seek at: %d: %v", -int64(i), err)
}
_, err = file.Read(bs)
if err != nil {
log.Fatalf("could read from file: %v", err)
}
if bs[0] == end {
ret = r
}
}
return ret
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment