当前位置: 首页 > news >正文

海南微信网站制作平台网络推广的优势

海南微信网站制作平台,网络推广的优势,电子商务方案设计案例,网站建设报价表模板Java NIO 1.BIO与NIO的区别 BIO为阻塞IO,NIO为非阻塞IO。 BIONIOJAVA1.4之前Java 1.4之后面向流:以byte为单位处理数据面向块:以块为单位处理数据同步阻塞同步非阻塞无选择器(Selector) 1.1NIO的核心组成部分 Cha…

Java NIO

1.BIO与NIO的区别

BIO为阻塞IO,NIO为非阻塞IO。

BIONIO
JAVA1.4之前Java 1.4之后
面向流:以byte为单位处理数据面向块:以块为单位处理数据
同步阻塞同步非阻塞
选择器(Selector)

1.1NIO的核心组成部分

  • Channels
    Channel是双向的,既能做读操作也能做写操作,常见Channel如下:
Channel类功能
FileChannel文件数据读写
DtagramChannelUDP数据读写
ServerScoketChannel和SocketChannelTCP数据读写
  • Buffers
    缓冲区
  • Selectors
    选择器,用于监听多个通道的事件,可实现单个线程就可以监听多个客户端通道。

2.Channel

Channel封装了对数据源的操作,可以操作多种数据源,但是不必关心数据源的具体物理结构。Channel用于在字节缓冲区和另一侧的实体之间有效地传输数据。

Channel所有数据都是通过Buffer对象进行处理,通道要么读数据到缓冲区,要么从缓冲区写入到通道。

public interface Channle extend Closeable {public boolean isOpen();public void close() throws IOException;
}
2.1 FileChannel

FileChannel常用方法如下;

方法名作用
public int read(ByteBuffer dst)从通道读取数据并放到缓冲区中
public int write(ByteBuffer src)把缓冲区的数据写到通道中
public long transferFrom(ReadableByteChannel src, long position, long count)从目标通道中复制数据到当前通道
public long transferTo(long position, long count, WritableByteChannel target)把数据从当前通道复制给目标通道

无法直接打开一个FileChannel,常见的方法是通过inPutStream和outPutStream或RandomAccessFile获取一个FileChannel实例。
示例代码
文件写入示例

package com.hero.nio.file;
import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
//通过NIO实现文件IO
public class TestNIO {
@Test //往本地文件中写数据
public void test1() throws Exception{//1. 创建输出流FileOutputStream fos=new FileOutputStream("basic.txt");//2. 从流中得到一个通道FileChannel fc=fos.getChannel();//3. 提供一个缓冲区ByteBuffer buffer=ByteBuffer.allocate(1024);//4. 往缓冲区中存入数据String str="HelloJava";buffer.put(str.getBytes());//5. 翻转缓冲区buffer.flip();while(buffer.hasRemaining()) {//6. 把缓冲区写到通道中fc.write(buffer);}//7. 关闭fos.close();}
}

文件复制示例

public void test4() throws Exception {//1. 创建两个流FileInputStream fis = new FileInputStream("basic2.txt");FileOutputStream fos = new FileOutputStream("basic3.txt");//2. 得到两个通道FileChannel sourceFC = fis.getChannel();FileChannel destFC = fos.getChannel();//3. 复制destFC.transferFrom(sourceFC, 0, sourceFC.size());//4. 关闭fis.close();fos.close();
}
http://www.jinmujx.cn/news/78916.html

相关文章:

  • 如何修改wordpress登录域名优化关键词技巧
  • 邓亚萍近况 做网站败光20亿nba最新排名榜
  • 网站方案书山东企业网站建设
  • 网站制作公司备案通州区网站快速排名方案
  • wordpress插件css论坛seo网站
  • 小微宝安网站建设网络营销学什么内容
  • 找人做一个网站要多少钱阿里云盘资源搜索引擎
  • 苏州沧浪区做网站的跨境电商seo是什么意思
  • ps做的网站首页站长工具网站
  • 盐城网站优化工作室整合营销传播策略
  • 上海外贸公司集中在哪些地方百度seo霸屏软件
  • 网站越来越难做搜索引擎优化包括
  • 南网站建设 首选搜点网络怎么做网站卖产品
  • 设计产品网站seo主要是做什么的
  • 网站里的搜索怎么做的今日头条新闻最新消息
  • 日本樱花云服务器免费网站雅昌最大免费广告发布平台
  • 深圳 网站建设国家中医药管理局
  • 网站改版灵感库淘宝美工培训
  • 重庆网站建设 cqhtwl深圳网络营销的公司哪家好
  • 建设网站公司名称大全巨量算数官方入口
  • 网站分享插件怎么做seo能干一辈子吗
  • 深圳工作服制作滁州网站seo
  • 长宁做网站公司手机制作网站app
  • js 网站制作关键词你们懂的
  • 套餐网站如何做广告宣传与推广
  • 网站改版工作方案bt磁力种子
  • 成品网站管理系统 源码品牌营销策略分析论文
  • 网站建设 前后台目录结构关键词优化怎么优化
  • 白银做网站云南疫情最新情况
  • 烟台汽车租赁网站建设seo网站推广助理招聘