Support snapshot windows

Well no reason you didn't look at it Mark - I never created the PR. Apologies.

Could you use `bw.copyBytes` instead of writing to a `DataOutputStream`?