?? getsettypes.html
字號:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Getting and Setting Non-Byte Java Types in a ByteBuffer
(Java Developers Almanac Example)
</TITLE>
<META CONTENT="Patrick Chan" NAME="AUTHOR">
<META CONTENT="Code Examples from The Java Developers Almanac 1.4" NAME="DESCRIPTION">
<META CONTENT="Addison-Wesley/Patrick Chan" NAME="OWNER">
<META CONTENT="3/20/02" NAME="revision">
<STYLE TYPE="text/css">
<!-- BODY CODE {font-family: Courier, Monospace; font-size: 11pt} TABLE, BODY {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt} PRE {font-family: Courier, Monospace; font-size: 10pt} H3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11pt} A.eglink {text-decoration: none} A:hover.eglink {text-decoration: underline} -->
</STYLE>
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top"><font face="Times" size="6"><b>The Java Developers Almanac 1.4</b></font>
<br>
Order this book from <a href="/cgi-bin/scripts/redirect.pl?l=ex&url=http://www.amazon.com/exec/obidos/ASIN/0201752808/xeo">Amazon</a>.
</TD>
</TR>
<TR>
<TD align="right" valign="bottom">
<FORM method="get" action="/cgi-bin/search/find.pl">
<INPUT size="25" name="words" type="text"><INPUT value="Search" type="submit">
</FORM>
</TD>
</TR>
</TABLE>
<HR color="#6666cc">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
>
<A HREF="../index.html">List of Packages</A>
>
<B><A HREF="../java.nio/pkg.html">java.nio</A></B><font color="#666666" SIZE="-2">
[27 examples]
</font>
>
<B><A HREF="../java.nio/pkg.html#Byte%20Buffers">Byte Buffers</A></B><font color="#666666" SIZE="-2">
[8 examples]
</font>
</DIV><P>
<h3>
e162.
Getting and Setting Non-Byte Java Types in a ByteBuffer</h3>
The <code>ByteBuffer</code> class provides convenience methods for
getting and putting other multibyte Java primitive types.
There are two issues to be aware of when using these methods.
First, ensure that values will be stored using the desired
byte ordering;
see <a href="../java.nio/SetOrder.html" class="eglink"><font size="-1"><b>e165</b> Setting the Byte Ordering for a ByteBuffer</font></a> for more information.
Second, the <code>hasRemaining()</code> method cannot be used to determine if the
buffer has room for a multibyte put. If your application needs to
know this information, see <a href="../java.nio/TypeBuf.html" class="eglink"><font size="-1"><b>e163</b> Creating a Non-Byte Java Type Buffer on a ByteBuffer</font></a> for an example
that can provide this information.
<pre>
// Obtain a ByteBuffer; see also <a href="../java.nio/CreateBuf.html" class="eglink"><font size="-1"><b>e158</b> Creating a ByteBuffer</font></a>
ByteBuffer buf = ByteBuffer.allocate(<font color="#0066ff"><i>100</i></font>);
// Put values of different types
buf.putChar(<font color="#0066ff"><i>(char)123</i></font>);
buf.putShort(<font color="#0066ff"><i>(short)123</i></font>);
buf.putInt(<font color="#0066ff"><i>123</i></font>);
buf.putLong(<font color="#0066ff"><i>123L</i></font>);
buf.putFloat(<font color="#0066ff"><i>12.3F</i></font>);
buf.putDouble(<font color="#0066ff"><i>12.3D</i></font>);
// Reset position for reading
buf.flip();
// Retrieve the values
char c = buf.getChar();
short s = buf.getShort();
int i = buf.getInt();
long l = buf.getLong();
float f = buf.getFloat();
double d = buf.getDouble();
</pre>
<P><table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td bgcolor="#6666cc" align="center"><font color="#ffffff">
Related Examples
</font></td>
</tr>
</table>
e158. <a class="eglink" href="CreateBuf.html?l=rel">
Creating a ByteBuffer
</a>
<br>
e159. <a class="eglink" href="GetBytes.html?l=rel">
Getting Bytes from a ByteBuffer
</a>
<br>
e160. <a class="eglink" href="PutBytes.html?l=rel">
Putting Bytes into a ByteBuffer
</a>
<br>
e161. <a class="eglink" href="Buf2Array.html?l=rel">
Converting Between a ByteBuffer an a Byte Array
</a>
<br>
e163. <a class="eglink" href="TypeBuf.html?l=rel">
Creating a Non-Byte Java Type Buffer on a ByteBuffer
</a>
<br>
e164. <a class="eglink" href="PutString.html?l=rel">
Using a ByteBuffer to Store Strings
</a>
<br>
e165. <a class="eglink" href="SetOrder.html?l=rel">
Setting the Byte Ordering for a ByteBuffer
</a>
<br>
<table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td align="left">
<br>
See also:
<a class="eglink" href="/egs/java.nio/pkg.html?l=rel#File%20Locking">
File Locking
</a>
<a class="eglink" href="/egs/java.nio/pkg.html?l=rel#Files">
Files
</a>
<a class="eglink" href="/egs/java.nio/pkg.html?l=rel#Sockets">
Sockets
</a>
<a class="eglink" href="/egs/java.nio/pkg.html?l=rel#Streams">
Streams
</a>
</td>
</tr>
</table>
<br>
<br>
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="0">
© 2002 Addison-Wesley.
</FONT>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -