fos.write() 7965 ms
fileChannel.transferTo 170 ms
MappedByteBuffer out = fc.map(FileChannel.MapMode.READ_WRITE, 0, length); raf = new RandomAccessFile( metaFile, "rw" ); FileChannel channel = raf.getChannel(); channel.force( true ); //強制將所有對此通道的檔案更新寫入包含該檔案的存儲設備中。如果此通道的檔案駐留在本地存儲設備上,則此方法返回時可保證,否则不保证。 MappedByteBuffer buf = channel.map( FileChannel.MapMode.READ_WRITE, 0, metadataMaxLenght );
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.RandomAccessFile; import java.nio.channels.FileChannel; public class TestFileChannel { public static void main( String[] args ) throws Exception { } public static void a() throws Exception{ File file = new File("d:/bcw-200.log"); FileInputStream fis = new FileInputStream( file ); File outFile = new File("d:/bcw-201.log"); FileOutputStream fos = new FileOutputStream( outFile ); int byteToRead = 1024; byte[] buff = new byte[byteToRead]; // int byteRead = 0; // while(true){ // int result = fis.read( bb, byteRead, byteToRead - byteRead ); // if(result==-1){ // break; // } // byteRead += result; // } long start = System.currentTimeMillis(); while(true){ int result = fis.read( buff ); fos.write( buff ); if(result == -1){ break; } } System.out.println(System.currentTimeMillis() - start); fis.close(); fos.close(); System.out.println(System.currentTimeMillis() - start); } public static void b() throws Exception{ File file = new File("d:/bcw-200.log"); FileInputStream fis = new FileInputStream( file ); File outFile = new File("d:/bcw-202.log"); FileOutputStream fos = new FileOutputStream( outFile ); FileChannel in = fis.getChannel(); FileChannel out = fos.getChannel(); long start = System.currentTimeMillis(); in.transferTo( 0, file.length(), out ); System.out.println(System.currentTimeMillis() - start); in.close(); out.close(); System.out.println(System.currentTimeMillis() - start); } public static void c() throws Exception{ File file = new File("d:/bcw-200.log"); FileInputStream fis = new FileInputStream( file ); File outFile = new File("d:/bcw-202.log"); FileOutputStream fos = new FileOutputStream( outFile ); FileChannel in = fis.getChannel(); FileChannel out = fos.getChannel(); RandomAccessFile raf = new RandomAccessFile( file, "rw" ); long start = System.currentTimeMillis(); in.transferTo( 0, file.length(), out ); System.out.println(System.currentTimeMillis() - start); in.close(); out.close(); System.out.println(System.currentTimeMillis() - start); } }
相关推荐
### Wi-Fi Direct (P2P) 技术详解 #### Wi-Fi Direct 概述 Wi-Fi Direct(也称为Wi-Fi P2P)是一项...其通过简化设置流程、提高连接速度及灵活性等特点,正逐步改变人们的生活方式,并将在未来发挥更加重要的作用。
这种方法减少了延迟,提高了响应速度,特别适合游戏和其他实时应用。 2. **事件注册**:在DirectInput中,事件注册是通过创建设备对象并设置数据格式完成的。开发者可以为特定的输入事件(例如,按键按下或鼠标移动...
Direct3D实现3维地形 有详细的注释 并能够实现自由漫游
IDE 硬盘的传输模式有三种:PIO(Programmed I/O)模式、DMA(Driect Memory Access)模式和 Ultra DMA 模式。 PIO 模式的最大弊端是耗用极大量的 CPU 资源。以 PIO 模式运行的 IDE 接口,数据传输率达 3.3MB/s(PIO ...
3. **资源绑定理论**:DX12引入了新的资源绑定模型,允许更多的纹理、缓冲区和其他资源同时绑定到着色器,提高了渲染速度和灵活性。 4. **分层着色器模型**:新模型允许更灵活的着色器组织,便于开发者优化代码,...
rabbitMq中的driect模式,在服务端生产者可以直接使用此模式,对应消费端模式获取对接的模型消息,同时在生成的接口中可以直接使用此工具,方便适用!
//Don't Start Thread,Driect Communicate With Com Port,Please Use These Functions //不启动线程,直接与串口进行通信,请调用以下的函数 BOOL PS_CommInit(); BOOL PS_SendMessageToComm(char* szSendMsg,int ...
Direct9.0着色是DirectX图形编程中的一个重要概念,它是通过编程控制游戏或应用程序中图形的外观,赋予...在实际项目中,配合提供的"DirectX_Color"压缩包文件,可以进一步学习和实践Direct9.0中的颜色处理和着色技巧。