Hi Mark, Not all the bytes stored in a BytesWritable object are necessarily valid. Use BytesWritable#getLength() to determine how much of the buffer returned by BytesWritable#getBytes() to use.
Tom On Fri, Feb 6, 2009 at 5:41 AM, Mark Kerzner <markkerz...@gmail.com> wrote: > Hi, > > I have written binary files to a SequenceFile, seemeingly successfully, but > when I read them back with the code below, after a first few reads I get the > same number of bytes for the different files. What could go wrong? > > Thank you, > Mark > > reader = new SequenceFile.Reader(fs, path, conf); > Writable key = (Writable) > ReflectionUtils.newInstance(reader.getKeyClass(), conf); > Writable value = (Writable) > ReflectionUtils.newInstance(reader.getValueClass(), conf); > long position = reader.getPosition(); > while (reader.next(key, value)) { > String syncSeen = reader.syncSeen() ? "*" : ""; > byte [] fileBytes = ((BytesWritable) value).getBytes(); > System.out.printf("[%s%s]\t%s\t%s\n", position, syncSeen, > key, fileBytes.length); > position = reader.getPosition(); // beginning of next record > } >