易截截图软件、单文件、免安装、纯绿色、仅160KB

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
(专用):

对得到的缓冲区的更改不会传播到文件,并且该更改对映射到同一文件的其他程序也不是可见的;相反,会创建缓冲区已修改部分的专用副本。
(
MapMode.PRIVATE
)
 
三个方法:

a. fore();
缓冲区是
READ_WRITE
模式下,此方法对缓冲区内容的修改强行写入文件

b. load()
将缓冲区的内容载入内存,并返回该缓冲区的引用

c.


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

JAVA读取文件,避免中文乱码。

 1、JAVA读取文件,避免中文乱码。
/**
* 读取文件内容
*
* @param filePathAndName
*            String 如 c:\\1.txt 绝对路径
* @return boolean
*/
public static String readFile(String filePathAndName) {
   String fileContent ......

请各位高手不吝赐教,JAVA程序问题

 总共两个文件TaxTest.java与Tax.java
---------------------------------------------------------------------------------------
TaxTest.java
===========================================
import javax.swing.JOptionPane;
public class TestTax{
public static void main(String[] args){
String yea ......

请注意:java中没有引用传递


说明:本文的适用对象为java初学者、如果有读者发现文章中有叙述不妥之处,请指正。
今天在论坛上有人提了一个关于java中调用函数时有没有引用传递的问题,可谓是吵的不可开交。有人说java只有值传递,也有人说java既有值传递也有引用传递,那么java中到底有没有引用传递呢,下面我来分析一下。
一、首先来明确一下"值传递" ......

用java语言 编写的乘法口诀表

 public class Test {
 public static void main(String args[]) {
  int i;
  int j;
  for (i = 1; i <= 9; i++) {
   for (j = 1; j <= i; j++) {
    if (j * i <= 9)
     System.out.print(j ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号