أي ما يعادل javax.nio.العازلة.الوجه() في c#
سؤال
أنا ترقية بعض من التعليمات البرمجية جافا تحتاج إلى أن تكون قادرة على الوجه (javax.nio.Buffer.flip()
).
أنا باستخدام byte[] لتخزين البيانات و أريد أن الوجه هذه صفيف بايت, مثل الكثير من المخزن المؤقت يفعل ذلك ، وأعتقد تحت الطبقة العازلة يستخدم بايت[] أيضا.
شكرا
المحلول
ByteBuffer
قد تستخدم byte[]
(خلق من القول ، ByteBuffer.wrap
) أو غير جافا كومة الذاكرة (التي تم إنشاؤها مع ByteBuffer.allocateDirect
).يمكنك الحصول على وراء byte[]
مع ByteBuffer.array
.ولكن الدعوة flip
و أساليب مماثلة على مخازن لا chnage البيانات الفعلية.بدلا البولوج المرتبطة يتم تغيير البيانات.حيث تعادل مع byte
سيكون تغيير إزاحة أن قانون بربط معها.
نصائح أخرى
لا يوجد المباشر ما يعادل java.nio
الحزمة .صافي.غير متزامن IO عادة التعامل مع Stream.BeginRead
/EndRead
, لكنه ليس نفس النموذج.هل يمكن أن تقول لنا ما كنت تحاول أن تفعل ؟
تحرير:لقد قدمت مستوى منخفض تفاصيل ما كنت تحاول القيام به, ولكن لم يكن هناك أي ما يعادل حقيقية عن nio
دروس في .صافي, سوف إما أن يكتب لهم نفسك (ليس مستحيلا, ولكن الألم) أو استخدام مختلفة أعلى مستوى النوع.كنت قد تكون قادرة على استخدام MemoryStream
على سبيل المثال - الكتابة في ذلك ، ثم طلب العودة إلى البداية.هذا بت مثل التقليب بايت العازلة.ومع ذلك لا يمكننا معرفة ما إذا كان أو لا هذا هو المناسب دون مزيد من المعلومات على أعلى مستوى الهدف.قد يكون هناك طريقة أفضل بكثير من القيام بذلك.