时间:2021-05-20
本文实例总结了Java中channel用法。分享给大家供大家参考。具体分析如下:
1.Channel接口的定义:
public interface Channel{ public boolean isOpen( ); public void close( ) throws IOException;}2.Channel的常见类型:
FileChannel, SocketChannel, ServerSocketChannel, and DatagramChannel;
FileChannel通过RandomAccessFile, FileInputStream, FileOutputStream的getChannel()来初始化。
3.Scatter/Gather,必须使用ByteBuffer.allocateDirect(100)
public interface ScatteringByteChannel extends ReadableByteChannel { public long read (ByteBuffer [] dsts) throws IOException; public long read (ByteBuffer [] dsts, int offset, int length) throws IOException;}public interface GatheringByteChannel extends WritableByteChannel { public long write(ByteBuffer[] srcs) throws IOException; public long write(ByteBuffer[] srcs, int offset, int length) throws IOException;}4.file lock是和file相关,而不是channel。可以对进程有效,而不是线程。可以通过内存映射文件(memory-mapped file)来实现线程同步
5.buffer = fileChannel.map (FileChannel.MapMode.READ_ONLY, 100, 200);
6.MappedByteBuffer are direct. load( )将整个文件加载到内存(改方法不能保证完成)。force( )将数据flush到硬盘。
7.未绑定端口的DatagramChannel系统会自动分配端口。DatagramChannel的connect(),将保证只接受指定源地址的数据包。这时候,可以使用普通的read和write方法,包括Scatter/Gather
希望本文所述对大家的java程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例总结了Java中泛型的用法。分享给大家供大家参考。具体如下:1基本使用publicinterfaceList{voidadd(E);Iteratorit
本文实例讲述了java中Calendar类用法。分享给大家供大家参考,具体如下:java中的Calendar在开发中经常被忽略,这篇博客总结一下这个类,对后面项
这篇是Java多线程基本用法的一个总结。本篇文章会从一下几个方面来说明Java多线程的基本用法:如何使用多线程如何得到多线程的一些信息如何停止线程如何暂停线程线
java中静态导入机制用法实例详解这里主要讲解了如何使用Java中静态机制的用法,这里提供了简单实例大家可以参考下。静态常量类在java开发中,我们会经常用到一
static修饰符是java里面非常常用的一个东西,用法也非常多。然而,在kotlin里竟然没有这个东西!那该如何替代呢?本文就总结了下java里面static