İkili veri akışını işlemek için bazı kod yazıyorum. Bayt dizileriyle temsil edilen parçalar halinde alınır. Birleştirildiğinde, bayt dizileri, her biri aynı sabit terminatör değeriyle (benim durumumda 0xff) biten sıralı mesaj akışını temsil eder. Bununla birlikte, sonlandırıcı değeri, verili herhangi bir veri yığınının herhangi bir noktasında görünebilir. Tek bir yığın, bir iletinin, birden çok iletinin ve aralarındaki herhangi bir şeyin bir bölümünü içerebilir. İşte Java'da ikili veri belirleme
bu işlediği veri nasıl görünebileceğini bazılarını bulabilirsiniz: Ben işlemek için küçük bir sınıf yazdım[0x00, 0x0a, 0xff]
[0x01, 0x01, 0x01, 0xff]
[0x01, 0xff]
: Bu veriler bu mesajlardan dönüşmesi gerekmektedir
[0x00, 0x0a, 0xff, 0x01]
[0x01, 0x01]
[0xff, 0x01, 0xff]
bu. Daha sonra bir tampon dizisine yerleştirilen bayt dizisi biçiminde bazı veriler eklemek için bir yöntem vardır. Sonlandırıcı karakteri ile karşılaşıldığında, bayt dizisi temizlenir ve iletinin tamamı, bir ileti sırasına yerleştirilir; bu, hasNext() ve next() yöntemleri kullanılarak (bir yineleyiciye benzer şekilde) erişilebilen bir ileti sırasına yerleştirilir.
Bu çözüm düzgün çalışıyor, ancak bitirdiğimde, bunun yerine kullanabileceğim yerleşik bir kitaplıkta zaten kararlı, performanslı ve test edilmiş bir kod olabileceğini fark ettim.
Benim sorum şu ki - böyle bir sınıfa sahip olacak bir yardımcı program kitaplığı var mı, yoksa standart Java 6 kütüphanesinde bunu zaten yapabilecek bir şey var mı?
(byte) 0xFF == -1
olarak. Bir "0xff" için bayt testi başına yapabilen bir tamponlu bayt akışı çocuk sınıfı kullanılabilir. Bazı durumlarda bir boru hattı kullanılabilir: bakınız [PipedInputStream] (http://docs.oracle.com/javase/6/docs/api/java/io/PipedInputStream.html) vb. –