I wrote this code a while ago to accomplish a similar task (actually I wanted to scan lines in reverse, but it works for bytes too, because it works with bufio.ScanBytes):
https://play.golang.org/p/dqmlmdqk9k If you were going to use it in production, it would need lots of tests - it may well be wrong! Also, I've no idea what its performance characteristics are - I'm sure it would not be hard to make a reverse byte reader optimised for that purpose that was considerably more efficient. Hope this helps, rog. On 4 August 2017 at 16:01, <zack.sch...@gmail.com> wrote: > I'm working on a finite state machine that processes a file byte by byte, > without loading the entire file into memory. Currently it works in the > forward direction, but I'd like to get it working in the reverse direction > as well. Currently I make a *bufio.Readerfrom a open file / response body > and then use ReadByte() to get each byte from beginning to end. > > > I'm wondering, what is the best way to get each byte starting from the end > and going to the beginning? My first idea to read backwards is to use a > combination of UnreadByte() and Peek(1) to read in reverse after advancing > the reader to the end. I'd like to avoid reading in the whole file into > memory. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.