2010-01-21 41 views

回答

5

您可以使用DataOutputStream如果你想寫入的數據是怎麼回事要在C面讀兼容。仔細檢查writeFloat和writeChar文檔,看看它是否真的有效。

否則,您將不得不使用原始的OutputStream並將數據自己編碼爲字節。

編輯:只是想補充 - 我最好的猜測是,爲你的目的,writeFloat將工作,但writeChars不會,由於編碼問題。相反,您必須在您的Java String上使用getBytes方法來獲取以您的C代碼所期望的任何單字節字符爲單位的字節數組,然後將這些字節寫入DataOutputStream

+0

我會強調「仔細檢查文檔...」。當通過線路移動原語時,您很可能會遇到編碼和不同字節順序的問題。 – kdgregory 2010-01-21 16:46:10

+0

不僅如此,Java中的所有內容都是有符號的,而許多C/C++變量往往是無符號的。 – 2010-01-21 16:52:55

1

請記住,Java將有網絡字節順序的東西;很可能C程序員很懶惰,並不期望(至少在我的經驗中),你可能不得不補償他們的錯誤並做一些字節交換。

相關問題