java nio Ö®MappedByteBuffer
ÆäÊµÕÆÎÕ
MappedByteBuffer
²¢²»ÄÑ£¬Ö»Òª¼Çס“Èý·½Èý·¨ÈýÌØÐÔ”£¨ÎÒ×Ô¼º×ܽáµÄ£¬ºÇºÇ
~~
²»ÒªÈÓ¼¦µ°Å¶¡£¡£¡££©Õâ¾ä»°¾Í¿ÉÒÔÇáËɸ㶨£¡
MappedByteBuffer
Ö»ÊÇÒ»ÖÖÌØÊâµÄ
ByteBuffer
£¬¼´ÊÇ
ByteBuffer
µÄ×ÓÀà¡£
MappedByteBuffer
½«ÎļþÖ±½ÓÓ³Éäµ½Äڴ棨ÕâÀïµÄÄÚ´æÖ¸µÄÊÇÐéÄâÄڴ棬²¢²»ÊÇÎïÀíÄڴ棬ºóÃæËµÖ¤Ã÷ÕâÒ»µã£©¡£Í¨³££¬¿ÉÒÔÓ³ÉäÕû¸öÎļþ£¬Èç¹ûÎļþ±È½Ï´óµÄ»°¿ÉÒԷֶνøÐÐÓ³É䣬ֻҪָ¶¨ÎļþµÄÄǸö²¿·Ö¾Í¿ÉÒÔ¡£¶øÇÒ£¬Óë
ByteBuffer
Ê®·ÖÀàËÆ£¬Ã»Óй¹Ô캯Êý£¨Äã²»¿É
new MappedByteBuffer
£¨£©À´¹¹ÔìÒ»¸ö
MappedByteBuffer
£©£¬ÎÒÃÇ¿ÉÒÔͨ¹ý
java.nio.channels.FileChannel
µÄ
map()
·½·¨À´»ñÈ¡
MappedByteBuffer
¡£Æäʵ˵µÄͨË×Ò»µã¾ÍÊÇ
Map
°ÑÎļþµÄÄÚÈݱ»Ó³Ïñµ½¼ÆËã»úÐéÄâÄÚ´æµÄÒ»¿éÇøÓò£¬ÕâÑù¾Í¿ÉÒÔÖ±½Ó²Ù×÷ÄÚ´æµ±ÖеÄÊý¾Ý¶øÎÞÐè²Ù×÷µÄʱºòÿ´Î¶¼Í¨¹ý
I/O
È¥ÎïÀíÓ²Å̶ÁÈ¡Îļþ£¬ËùÒÔЧÂÊÉÏÓкܴóµÄÌáÉý£¡
ÈýÖÖ·½Ê½£º
FileChannel
ÌṩÁË
map
·½·¨À´°ÑÎļþÓ°ÉäΪÄÚ´æÓ³ÏñÎļþ£º
MappedByteBuffer map(int mode,long position,long size);
¿ÉÒÔ°ÑÎļþµÄ´Ó
position
¿ªÊ¼µÄ
size
´óСµÄÇøÓòÓ³ÉäΪÄÚ´æÓ³ÏñÎļþ£¬
mode
Ö¸³öÁË
¿É·ÃÎʸÃÄÚ´æÓ³ÏñÎļþµÄ·½Ê½£º
READ_ONLY,READ_WRITE,PRIVATE.
a. READ_ONLY,
£¨Ö»¶Á£©£º
ÊÔͼÐ޸ĵõ½µÄ»º³åÇø½«µ¼ÖÂÅ׳ö
ReadOnlyBufferException
.(MapMode.READ_ONLY
)
b. READ_WRITE
£¨¶Á
/
д£©£º
¶ÔµÃµ½µÄ»º³åÇøµÄ¸ü¸Ä×îÖÕ½«´«²¥µ½Îļþ£»¸Ã¸ü¸Ä¶ÔÓ³É䵽ͬһÎļþµÄÆäËû³ÌÐò²»Ò»¶¨ÊǿɼûµÄ¡£
(
MapMode.READ_WRITE
)
c. PRIVATE
£¨×¨Óã©£º
¶ÔµÃµ½µÄ»º³åÇøµÄ¸ü¸Ä²»»á´«²¥µ½Îļþ£¬²¢ÇҸøü¸Ä¶ÔÓ³É䵽ͬһÎļþµÄÆäËû³ÌÐòÒ²²»ÊǿɼûµÄ£»Ïà·´£¬»á´´½¨»º³åÇøÒÑÐ޸IJ¿·ÖµÄרÓø±±¾¡£
(
MapMode.PRIVATE
)
Èý¸ö·½·¨£º
a. fore();
»º³åÇøÊÇ
READ_WRITE
ģʽÏ£¬´Ë·½·¨¶Ô»º³åÇøÄÚÈݵÄÐÞ¸ÄÇ¿ÐÐдÈëÎļþ
b. load()
½«»º³åÇøµÄÄÚÈÝÔØÈëÄڴ棬²¢·µ»Ø¸Ã»º³åÇøµÄÒýÓÃ
c.
Ïà¹ØÎĵµ£º
Ò»¡¢±³¾°
×î½üÒ»Äê¶àÀ´,ÔÚInternetÉϳöÏÖµÄÌØ±ðÎüÒýÈ˵Äʼþ¾ÍÊÇJavaÓïÑÔºÍÓÃJava±àдµÄä¯ÀÀÆ÷HotJava¡£
1991Äê,SUNMicroSystem¹«Ë¾µÄJameGosling¡¢BillJoeµÈÈË,ΪÔÚµçÊÓ¡¢¿ØÖÆ¿¾Ãæ°üÏäµÈ¼ÒÓÃÏû·ÑÀàµç×Ó²úÆ·ÉϽøÐн»»¥Ê½²Ù×÷¶ø¿ª·¢ÁËÒ»¸öÃûΪOakµÄÈí¼þ(¼´Ò»ÖÖÏðÊ÷µÄÃû×Ö),µ«µ±Ê±²¢Ã»ÓÐÒýÆðÈËÃǵ ......
1¡¢JAVA¶ÁÈ¡Îļþ£¬±ÜÃâÖÐÎÄÂÒÂë¡£
/**
* ¶ÁÈ¡ÎļþÄÚÈÝ
*
* @param filePathAndName
* String Èç c:\\1.txt ¾ø¶Ô·¾¶
* @return boolean
*/
public static String readFile(String filePathAndName) {
String fileContent ......
ͨË×Àí½âÏòÉÏתÐÍ£º
¾ÍÊÇ×ÓÀàתÐͳɸ¸Àà¡£
class A{}
class B extends A { }
A b = new B();
Õâ¸ö¾ÍÊÇÏòÉÏתÐÍ¡£
ÏòÉÏתÐÍ¿ÉÒÔÏñÏÂÃæÕâÌõÓï¾äÕâô¼òµ¥:
Shape s =new Circle();
ÕâÀ´´½¨Ò»¸öCircle¶ÔÏ ......
¸ù¾ÝJDK5µÄÐÂÌØÐÔ,ÓÃForÑ»·Map,ÀýÈçÑ»·MapµÄKey
Java´úÂë
for(String dataKey : paraMap.keySet()) {
System.out.println(dataKey ); &nbs ......