📄 getsettypes.htm
字号:
<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">
<META CONTENT="no-cache" HTTP-EQUIV="Pragma">
<LINK href="/almanac.css" media="screen" type="text/css" rel="stylesheet">
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD></TD>
</TR>
</TABLE>
<br>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD></TD>
</TR>
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top">
<h1>The Java Developers Almanac 1.4</h1>
<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">
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD valign="top"><script type="text/javascript">
<!--
google_ad_client = "pub-6001183370374757";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as";
google_ad_channel = "4777242811";
google_ad_type = "text_image";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "6666CC";
google_color_url = "6666CC";
google_color_text = "000000";
//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></TD><TD> </TD><TD valign="top">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
>
<A HREF="../index.html">List of Packages</A>
>
<A HREF="../java.nio/pkg.html">java.nio</A><font color="#666666" class="xsmall-font">
[27 examples]
</font>
>
<B><A HREF="../java.nio/pkg.html#Byte Buffers">Byte Buffers</A></B><font color="#666666" class="xsmall-font">
[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"><b>e165</b> Setting the Byte Ordering for a ByteBuffer</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"><b>e163</b> Creating a Non-Byte Java Type Buffer on a ByteBuffer</a> for an example
that can provide this information.
<pre> // Obtain a ByteBuffer; see also <a href="../java.nio/CreateBuf.html" class="eglink"><b>e158</b> Creating a ByteBuffer</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">
<b>Related Examples</b></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 class="xsmall-font">
© 2002 Addison-Wesley.
</FONT></TD><TD> </TD><TD valign="top"><A href="http://compositesw.com/devzone?ref=javaalmanac"><IMG alt="Click Here" height="600" width="120" border="0" src="/csw_oad_120x600_final.gif"></A></TD>
</TR>
</TABLE>
</BODY>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META CONTENT="NO-CACHE" HTTP-EQUIV="PRAGMA">
</HEAD>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -