You can use the following library to read and write plist's in java. From what I've read it should be able to handle the multiple formats for a plist (Binary, XML, ASCII).
As for decoding NSKeyedArchiver
, I am not aware of any libraries out there that can achieve this.