3.2 两个 Channel 传输数据

简介: 3.2 两个 Channel 传输数据

String FROM = "helloword/data.txt"; String TO = "helloword/to.txt"; long start = System.nanoTime(); try (FileChannel from = new FileInputStream(FROM).getChannel(); FileChannel to = new FileOutputStream(TO).getChannel(); ) { from.transferTo(0, from.size(), to); } catch (IOException e) { e.printStackTrace(); } long end = System.nanoTime(); System.out.println("transferTo 用时:" + (end - start) / 1000_000.0);

超过 2g 大小的文件传输

public class TestFileChannelTransferTo { public static void main(String[] args) { try ( FileChannel from = new FileInputStream("data.txt").getChannel(); FileChannel to = new FileOutputStream("to.txt").getChannel(); ) { // 效率高,底层会利用操作系统的零拷贝进行优化 long size = from.size(); // left 变量代表还剩余多少字节 for (long left = size; left > 0; ) { System.out.println("position:" + (size - left) + " left:" + left); left -= from.transferTo((size - left), left, to); } } catch (IOException e) { e.printStackTrace(); } } }



目录
相关文章
|
1月前
|
JSON 数据格式
使用 sendBeacon 发送数据
【10月更文挑战第6天】
66 2
|
4月前
|
存储 Go
GO通道:无缓冲通道与缓冲通道
GO通道:无缓冲通道与缓冲通道
39 0
|
6月前
|
网络协议
网络编程-UDP协议(发送数据和接收数据)
网络编程-UDP协议(发送数据和接收数据)
|
网络协议 Java
UDP发送数据、接收数据及UDP通信程序练习
UDP发送数据、接收数据及UDP通信程序练习
294 0
J3
|
Java API
详解,NIO中的通道(Channel)
这是 IO 相关的第三篇通道,主要讲解一下通道是什么,在 Java NIO 中的体系及使用。能被称为 NIO 中的三大组件之一作用肯定是不言而喻的,所以对于通道的掌握还是很重要的,那我们往下看把!
J3
290 0
详解,NIO中的通道(Channel)
|
存储 Java
NIO之通道Channel【FileChannel介绍】
通道(channel)介绍 Channel是一个对象,作用是用于源节点和目标节点的连接,在java NIO中负责缓冲区数据的传递。Channel本身不存储数据,因此需要配合缓冲区进行传输。
NIO之通道Channel【FileChannel介绍】
|
缓存 网络协议 大数据
netty系列之:基于流的数据传输
netty系列之:基于流的数据传输
|
API
【Netty】NIO 选择器 ( Selector ) 通道 ( Channel ) 缓冲区 ( Buffer ) 网络通信案例
【Netty】NIO 选择器 ( Selector ) 通道 ( Channel ) 缓冲区 ( Buffer ) 网络通信案例
205 0
|
SQL 网络协议 关系型数据库
TCP性能和发送接收Buffer的关系
# 前言 本文希望解析清楚,当我们在代码中写下 socket.setSendBufferSize 和 sysctl 看到的rmem/wmem系统参数以及最终我们在TCP常常谈到的接收发送窗口的关系,以及他们怎样影响TCP传输的性能。 先明确一下:**文章标题中所说的Buffer指的是sysctl中的 rmem或者wmem,如果是代码中指定的话对应着SO_SNDBUF或者SO_RCVB
5964 0
|
Java 前端开发
Netty使用Marshalling传输信息
使用Marshalling传输信息,需要有以下两个包,可以在官网下载 jboss-marshalling-1.
1073 0