JAVAÄÚ´æÎļþÓ³Éä
ÓÐÈçÏÂÇé¿öÏ¿ÉÒÔÓõ½ÄÚ´æÎļþÓ³Éä¼¼Êõ½â¾öÎÊÌâ:
1.²»Òª¸´ÖÆÎļþÖÐËùÓеÄÊý¾Ý£¬Ö»ÐèÒªÐÞ¸ÄÎļþÖоֲ¿µÄÊý¾Ý¡£
2.²¢ÐÐ\·Ö¶Î´¦Àí´óÎļþ¡£
ÈçÏ´úÂëʾʹÓÃjavaNIO¾Ö²¿ÐÞ¸ÄÎļþÖÐÖ¸¶¨Î»ÖõIJ¿·ÖÊý¾Ý£º
Java´úÂë
/**
* ÐÞ¸ÄÎļþÖеÄijһ²¿·ÖµÄÊý¾Ý²âÊÔ:½«×Ö¶¨Î»ÖõÄ×Öĸ¸ÄΪ´óд
* @param fName :ÒªÐ޸ĵÄÎļþÃû×Ö
* @param start:Æðʼ×Ö½Ú
* @param len:ÒªÐ޸ĶàÉÙ¸ö×Ö½Ú
* @return :ÊÇ·ñÐ޸ijɹ¦
* @throws Exception:Îļþ¶ÁдÖпÉÄܳöµÄ´í
* @author javaFound
*/
public static boolean changeFile(String fName,int start,int len) throws Exception{
//´´½¨Ò»¸öËæ»ú¶ÁдÎļþ¶ÔÏó
java.io.RandomAccessFile raf=new java.io.RandomAccessFile(fName,"rw");
long totalLen=raf.length();
System.out.println("Îļþ×ܳ¤×Ö½ÚÊÇ: "+totalLen);
//´ò¿ªÒ»¸öÎļþͨµÀ
java.nio.channels.FileChannel channel=raf.getChannel();
//Ó³ÉäÎļþÖеÄijһ²¿·ÖÊý¾ÝÒÔ¶Áдģʽµ½ÄÚ´æÖÐ
java.nio.MappedByteBuffer buffer= channel.map(FileChannel.MapMode.READ_WRITE, start, len);
//ʾÀýÐÞ¸Ä×Ö½Ú
&nb
Ïà¹ØÎĵµ£º
JAVAºìºÚÊ÷
¸ÅÄÿ¸ö½Úµã¶¼´øÓÐÑÕÉ«ÊôÐԵĶþ²æ²éÕÒÊ÷£¬ÑÕÉ«»òºìÉ«»òºÚÉ«;
ÌØÐÔ£º
ÐÔÖÊ1. ½ÚµãÊǺìÉ«»òºÚÉ«¡£
¡¡¡¡ÐÔÖÊ2. ¸ùÊǺÚÉ«¡£
¡¡¡¡ÐÔÖÊ3. ÿ¸öºìÉ«½ÚµãµÄÁ½¸ö×ӽڵ㶼ÊǺÚÉ«¡£(´Óÿ¸öÒ¶×Óµ½¸ùµÄËùÓз¾¶Éϲ»ÄÜÓÐÁ½¸öÁ¬ÐøµÄºìÉ«½Úµã)
¡¡¡¡ÐÔÖÊ4. ´ÓÈÎÒ»½Úµãµ½Æäÿ¸öÒ¶×ÓµÄËùÓз¾¶¶¼°üº¬ÏàͬÊýÄ¿µÄºÚÉ«½Úµã¡£
......
¶àÏ̵߳Äͬ²½ÒÀ¿¿µÄÊǶÔÏóËø»úÖÆ£¬synchronized¹Ø¼ü×ֵı³ºó¾ÍÊÇÀûÓÃÁË·âËøÀ´ÊµÏÖ¶Ô¹²Ïí×ÊÔ´µÄ»¥³â·ÃÎÊ¡£
ÏÂÃæÒÔÒ»¸ö¼òµ¥µÄʵÀýÀ´½øÐжԱȷÖÎö¡£ÊµÀýÒªÍê³ÉµÄ¹¤×÷·Ç³£¼òµ¥£¬¾ÍÊÇ´´½¨10¸öỊ̈߳¬Ã¿¸öÏ̶߳¼´òÓ¡´Ó0µ½99Õâ100¸öÊý×Ö£¬ÎÒÃÇÏ£ÍûÏß³ÌÖ®¼ä²»»á³öÏÖ½»²æÂÒÐò´òÓ¡£¬¶øÊÇ˳ÐòµØ´òÓ¡¡£
ÏÈÀ´¿´µÚÒ»¶ ......
String ¶ÔÏóÊDz»¿É¸Ä±äµÄ¡£Ã¿´ÎʹÓà System.String ÀàÖеķ½·¨Ö®Ò»Ê±£¬¶¼ÒªÔÚÄÚ´æÖд´½¨Ò»¸öеÄ×Ö·û´®¶ÔÏó£¬Õâ¾ÍÐèҪΪ¸ÃжÔÏó·ÖÅäеĿռ䡣ÔÚÐèÒª¶Ô×Ö·û´®Ö´ÐÐÖØ¸´Ð޸ĵÄÇé¿öÏ£¬Óë´´½¨Ð嵀 String ¶ÔÏóÏà¹ØµÄϵͳ¿ªÏú¿ÉÄÜ»á·Ç³£°º¹ó¡£Èç¹ûÒªÐÞ¸Ä×Ö·û´®¶ø²»´´½¨ÐµĶÔÏó£¬Ôò¿ÉÒÔʹÓà System.Text.StringBuilder Àà¡£ÀýÈ ......
±¾ÎÄÓɲ©Ö÷´Óhttp://www.blogjava.net/freeman1984/archive/2007/09/27/148850.html×ªÔØ£»ÔÎijö´¦£¬²©Ö÷Ò²²»ÖªµÀ£¬Ï£Íû¶Ô´ó¼ÒÓеã°ïÖú......
ÁùÖÖÒì³£´¦ÀíµÄªϰ
Äã¾õµÃ×Ô¼ºÊÇÒ»¸öJavaר¼ÒÂð£¿ÊÇ·ñ¿Ï¶¨×Ô¼ºÒÑ¾È«ÃæÕÆÎÕÁËJavaµÄÒì³£´¦Àí»úÖÆ£¿ÔÚÏÂÃæÕâ¶Î´úÂëÖУ¬ÄãÄܹ»Ñ¸ËÙÕÒ³öÒì³£´¦ÀíµÄÁù¸öÎÊÌâÂð£¿
1 Output ......