当前位置: 首页 > 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.ds6.com.cn/news/83223.html

相关文章:

  • wordpress彩色内链seo网课培训
  • 网站建设大宇百度做广告怎么做
  • 学校网站查询学历个人网站怎么建立
  • 做网站的文案怎么写百度账号客服人工电话
  • 微友说是做网站维护让帮忙投注识图找图
  • 联想电脑网站建设策划书网站seo优化案例
  • 做微网站平台360优化大师官方下载最新版
  • 顺德网站建设多少钱活动推广文案
  • 怎么建公司网站账号如何宣传网站
  • dwcs5怎么做动态网站后台个人seo怎么赚钱
  • cms网站设计百度如何快速收录网站
  • 企业交易平台的网站制作多少钱网站站外优化推广方式
  • 手机网站左右滑动自动收录
  • 视频会议系统直播聊天网站开发百度网
  • 高薪招聘wordpress建站免费发布信息平台有哪些
  • 网站名称大全湖南网络优化服务
  • phpcms v9网站地图百度网盘账号登录入口
  • 开山云匠网seo网站关键词优化软件
  • 网站的标题优化怎么做茶叶网络推广方案
  • 安徽网站制作怎么创建自己的网站平台
  • 网站版式类型百度统计api
  • 哪个电商平台好做seo优化咨询
  • 网站建设与维护方式如何在手机上制作网站
  • 做爰视频免费观看网站优化网站建设
  • 普通展示型网站文案短句干净治愈
  • 网络公司都有哪些一键优化是什么意思
  • 温州 建网站的公司网站多少钱
  • 如何推销产品给客户seo搜索引擎优化是
  • 青岛网站设计哪家我对网络营销的理解
  • 武汉平价做网站百度seo关键词优化费用