मेरे पास वर्तमान में जावा बाइटबफर है जिसमें पहले से ही बिग एंडियन प्रारूप में डेटा है। मैं फिर एक बाइनरी फ़ाइल को लिटिल एंडियन के रूप में लिखना चाहता हूं।जावा में छोटे एंडियन बाइटबफर को छोटे एंडियन के लिए कैसे लिखें
public void writeBinFile(String fileName, boolean append) throws FileNotFoundException, IOException
{
FileOutputStream outStream = null;
try
{
outStream = new FileOutputStream(fileName, append);
FileChannel out = outStream.getChannel();
byteBuff.position(byteBuff.capacity());
byteBuff.flip();
byteBuff.order(ByteOrder.LITTLE_ENDIAN);
out.write(byteBuff);
}
finally
{
if (outStream != null)
{
outStream.close();
}
}
}
ध्यान दें कि byteBuff एक ByteBuffer बिग एन्डियन प्रारूप में भर गया है कि है:
यहाँ कोड है जो सिर्फ बड़ी एन्डियन में अभी भी फ़ाइल लिखते है।
मेरे अंतिम उपाय एक और बफर बनाने और स्थापित करने कि ByteBuffer थोड़ा endian के लिए और फिर मूल (बड़ा endian) बफर से "getInt" मूल्यों को पढ़ने का एक जानवर बल विधि, और "setInt" छोटे endian करने के लिए मूल्य है बफर। मुझे लगता है कि एक बेहतर तरीका है ...
क्या आपने अपाचे कॉमन्स (http://commons.apache.org/io/api-release/org/apache/commons/io/EndianUtils.html) की कोशिश की है? अपाचे कॉमन्स के लिए –
+1: पहिया को पुनर्निर्मित नहीं करना :) – BachT