- iOS文件流操作类-NSFileHandle
认真的人最可爱
iOS技术研发ios文件操作文件流操作NSFileHandhttp断点续传
Objective-C使用NSFileHandle类对文件进行流操作。类似于C++(或者C)操作文件流,NSFileHandle基本步骤:1、打开文件,获取NSFileHandle对象。2、对上面打开文件,通过NSFileHandle对象进行I/O流操作3、关闭文件NSFileHandle常用方法://打开一个文件用于读入+(NSFileHandle*)fileHandleForReadingAt
- iOS/macOS - 逐行写入文件 (NSFileHandle)
伊织code
Apple开发maciosNSFileHandle逐行写入文件
文章目录-(void)saveDataByLine{NSString*filePath=@"/Users/xx/Library/Containers/com.ds.TMXExport/Data/Library/Caches/a.txt";NSLog(@"filePath:%@",filePath);if(!
- iOS NSFileManager和NSFileHandle及沙盒路径
xiaoxiaokang
沙盒机制每一个iOS应用程序都会为自己创建一个文件系统目录(文件夹),这个独立、封闭、安全的空间叫做沙盒。沙盒就是一种安全体系,它规定了应用程序只能在为该应用程序创建的文件夹(沙盒)内访问文件,不可以访问其他沙盒内的内容(iOS8已经部分开放访问)。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表(plist)、sqlite数据库和文本文件等。文件管理器与文件对接器文件管理器(NSFil
- NSFileManager & NSFileHandle操作
青春的天空007
/**此处使用NSCachesDirectoryApp中的缓存文件夹作为案例*/NSArray*pathArray=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);NSString*cachePath=[pathArrayfirstObject];//在cache文件夹下新建一个GTData文件
- iOS实现文件下载功能
本文实例为大家分享了iOS实现文件下载的具体代码,供大家参考,具体内容如下说明:1).获取网络文件大小;2).开启循环,计算每段position开始与结束位置,通过Range头字段按块获取文件数据流;3).使用NSFileHandle追加方式将NSData文件数据写入本地文件。1、用HEAD请求方式获取网络文件大小:/* 获取网络文件大小 */-(longlong)getNetFileLen:(N
- Swift | 输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果
OSong
输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果.例如123456输出654321读取输入的函数funcscanf()->String?{letfileHandle=NSFileHandle.init(fileDescriptor:STDIN_FILENO)letdata=fileHandle.availableDataletstr=String.init(data:data,enc
- (六) IOS学习之--NSFileHandle
CodingEleven
-NSFileHandleNSFileHandle主要用于操作文件的读写1.文件的创建//获取文件管理器NSFileManager*manager=[NSFileManagerdefaultManager];NSString*fileStr=@"Helloworld!";//准备初始写入文件的数据NSData*fileData=[fileStrdataUsingEncoding:NSUTF8Str
- OC获取文件MD5值与swift字符串MD5加密方法
天码行空
OC:使用前需先#import//path为文件路径+(NSString*)getImageMD5:(NSString*)path{NSFileHandle*handle=[NSFileHandlefileHandleForReadingAtPath:path];if(handle==nil){returnnil;}CC_MD5_CTXmd5;CC_MD5_Init(&md5);BOOLdone=
- iOS网络编程(九)
BEYOND黄
1.多线程下载文件思路:开几个子线程来进行下载,通过设定请求头来下载各自的部分,通过NSFilehandle来把数据写进文件,这个类里有在任意位置写数据的方法。2.文件的压缩和解压缩:第三方解压缩框架——ZipArchive需要引入libz.dylib框架导入头文件Main.h创建压缩文件+(BOOL)createZipFileAtPath:(NSString*)pathwithFilesAtPa
- NSFileManager&沙盒
rainbow_H
1、文件管理器(NSFileManager):管理和操作文件,如创建、移动、删除、复制文件等2、NSFileHandle与NSFileManager的区别:NSFileHandle此类主要是对文件内容进行读取和写入操作NSFileManger此类主要是对文件进行的操作以及文件信息的获取3、使用NSFileHandle的基本步骤:创建一个NSFileHandle对象;对打开的文件进行I/O操作;关闭
- NSFileManager和NSFileHandle(附:获取文件大小 )
默默_David
/file文件操作NSFileManager常见的NSFileManager文件的方法:-(BOOL)contentsAtPath:path从文件中读取数据-(BOOL)createFileAtPath:pathcontents:(BOOL)dataattributes:attr向一个文件写入数据-(BOOL)removeFileAtPath:pathhandler:handler删除一个文件-(
- Connection 断点下载
nothing_c
{NSURLConnection*_connection;//文件句柄,缓存文件,必须存在NSFileHandle*_handle;longlong_receiveSize;longlong_totalSize;}-(IBAction)StartAndPauseAction:(id)sender{NSString*destionPath=[NSHomeDirectory()stringByAppe
- iOS 文件(NSFileManager)及 文件内容(NSFileHandle) 基础使用
CaptainSirZero
NSFileManager此类主要是对文件进行的操作以及文件信息的获取判断文件是否存在于某个路径中+(BOOL)fileIsExistOfPath:(NSString*)filePath{BOOLflag=NO;NSFileManager*fileManager=[NSFileManagerdefaultManager];if([fileManagerfileExistsAtPath:filePa
- swift 11.1 文件管理 NSFileManager
前进的苏辰
1简介(1)文件用于对数据进行持久性存储(单例模式)(2)两个类:NSFileManager文件管理类NSFileHandle文件句柄类(见下一节)(3)NSFileManager的作用是对文件自身进行管理(创建、移动、删除、拷贝)2用法(1):创建文件管理类对象(单例设计模式)letmanager=NSFileManager.defaultManager()(2)判断文件/目录是否存在:file
- iOS文件操作-NSFileHandle
anyurchao
利用NSFilehandle类提供的方法,允许更有效地使用文件。一般而言,处理文件时都要经历以下三个步骤:1.打开文件,并获取一个NSFileHandle对象,以便在后面的I/O操作中引用该文件2.对打开的文件执行I/O操作(读取、写入、更新)3.关闭文件注意:NSFileHandle类主要对文件内容进行读取和写入操作,可以使用NSFileHandle做文件的断点续传。NSFileHandle此类
- iOS开发之进阶篇(11)—— 数据存储
tan452301
目录1.`NSFileManager/NSFileHandle`文件管理2.`writeToFile`写入.plist文件3.`NSUserDefaults`用户配置4.`NSKeyedArchiver/NSKeyedUnarchiver`归解档5.`NSBundle`资源文件包6.`Keychain`钥匙串7.`fwrite/fread`C标准库输入输出8.`SQLite3/CoreData/F
- iOS NSFileHandle
__Mr_Xie__
前言众所周知,断点续传可以通过句柄NSFileHandle实现,那NSFileHandle类的主要作用是什么呢?NSFileHandle类作用主要是对文件内容进行读取和写入操作。NSFileHandle经常会跟NSFileManger搭配使用。NSFileManger类主要是对文件进行的操作以及文件信息的获取。常用方法//打开一个文件准备读取+(id)fileHandleForReadingAtP
- NSFileManager&NSFileHandle
tp夕阳武士
`NSString*sourcePath=[[NSBundlemainBundle]pathForResource:@"source"ofType:@"pdf"];//创建用于写入的目标文件NSString*targetPath=[self.documentsPathstringByAppendingPathComponent:@"target.pdf"];BOOLsuccess=[[NSFile
- OC NSFileHandle和NSFileManage补充,NSVlue和NSNumber
cry_0416
NSFileManager文件管理(可执行文件与文件夹)创建文件creatFileAtPath:(NSString*)contents:(NSData*)attributes:(NSDictonary)创建文件夹[fileManagercreateDirectoryAtPath:(NSString*)withIntermediateDirectories:(BOOL)attributes:(NSD
- 文件句柄:NSFileHandle
天蓬大元
NSFileHandle:文件句柄类,用于操作文件的内容//fileHandleForReadingAtPath:以只读的方式打开文件,并获取句柄对象//fileHandleForWritingAtPath:以只写的方式打开文件,并获取句柄对象//fileHandleForUpdatingAtPath:以读写的方式打开文件,并获取句柄对象//Library/PreferencePanes//1,先
- 网络编程(五)NSFileHandle和 NSOutputStream
Rui哥
文件句柄NSFileHandle特点:1>在写数据到磁盘时,边写数据边往后移位置.2>直接将NSData写入磁盘使用步骤:1>创建空文件2>创建文件句柄指针指向该文件末尾3>当接收到数据时,使用句柄写数据即可4>当数据写完后,需要关闭句柄//step1NSString*filepath=@"/Users/yang/Desktop/testDoc/abc.png";[[NSFileManagerde
- IOS文件系统及其相关操作(NSFileManager,NSFileHandle)
xiaoke5881037
IOS文件系统及其相关操作(NSFileManager,NSFileHandle)2011-06-0814:29:41|分类:iphone_dev_note|举报|字号订阅Howdoyougetthepathstothesespecialsandboxdirectories?NSArray*NSSearchPathForDirectoriesInDomains(NSSearchPathDirect
- 自己实现一个简单的网络音乐mp3播放器
diankuini1374
大繁至简,把思路搞清楚才是最重要的,如何去做依托于使用什么来实现这项功能列出我使用的基本类NSURLSessionDataTask数据获取类NSFileHandle数据缓存和数据读取类AudioFileStream音频文件解析类AudioQueue音频播放类我的实现过程1.触发播放功能2.创建数据管理模块:主管数据下载(网络歌曲)和数据提供管理3.音频原数据回调,异步提供给音频数据池4.解析音频数
- 【IOS 开发学习总结-OC-36】★文件 I/O——NSFileHandle&NSURL&NSBundle
Albert_H
ios开发
NSFileHandle处理文件IO使用NSFileHandle的基本步骤如下:创建一个NSFileHandle,该NSFileHandle将会打开指定的文件;对打开的文件执行IO操作;关闭文件。NSFileHandle提供的常用方法如下:1.+(nullableinstancetype)fileHandleForReadingAtPath:(NSString*)path;根据指定路径打开一份准备
- iOS疯狂详解之NSFileHandle
吊炸天-狂人
iOS
//创建一个文件-(void)addField{NSString*documentPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject];NSString*fieldPath=[documentPathstringByAppendingPathComponent:@
- iOS网络(三):NSURLConnection大文件下载,断点续传,NSOutputStream断点续传,文件上传及文件解压缩
a z q
移动开发iOS移动开发NSURLConnection断点续传文件的解压缩文件上传
NSURLConnection大文件下载(断点续传)1.NSFileHandle#import"ViewController.h"@interfaceViewController()@property(weak,nonatomic)IBOutletUIProgressView*progressView;@property(nonatomic,assign)NSIntegertotalSize;@p
- 基本文件操作:NSFileHandle的用法
enuola
IOS开发Object-C编程语言
利用NSFilehandle类提供的方法,允许更有效地使用文件。一般而言,处理文件时都要经历以下三个步骤:1.打开文件,并获取一个NSFileHandle对象,以便在后面的I/O操作中引用该文件2.对打开的文件执行I/O操作(读取、写入、更新)3.关闭文件下面总结了一些常用的NSFileHandle的方法,在这个表中,fh是一个NSFileHandle对象,data是一个NSData对象,path
- ios-NSFileHandle和NSOutputStream
rv0p111
ios-开发
当我们一点一点的去下载的文件的时候,想要把文件保存起来就要用到这个类,因为如果我们直接用NSMutableData去拼接一点一点下载的文件的话,然后最后再一下子去写入,内存是会暴涨的,所以如果我们想解决这个问题,我们就需要让文件去一点一点的写入,而不是一下子全部写入,所以我们就需要用到这个类了。-(void)saveFile:(NSData*)data{//保存文件的路径NSString*file
- iOS疯狂详解之NSFileHandle
每天刷两次牙
//创建一个文件-(void)addField{NSString*documentPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject];NSString*fieldPath=[documentPathstringByAppendingPathComponent:@
- iOS 持续往文件写入数据。
weixin_34354945
持续往文件写入数据,不会覆盖之前写过的。NSFileHandle*fileHandle=[NSFileHandlefileHandleForWritingAtPath:fileDataPath];if(fileHandle==nil){return;}[fileHandleseekToEndOfFile];[fileHandlewriteData:data];[fileHandlecloseFil
- ios内付费
374016526
ios内付费
近年来写了很多IOS的程序,内付费也用到不少,使用IOS的内付费实现起来比较麻烦,这里我写了一个简单的内付费包,希望对大家有帮助。
具体使用如下:
这里的sender其实就是调用者,这里主要是为了回调使用。
[KuroStoreApi kuroStoreProductId:@"产品ID" storeSender:self storeFinishCallBa
- 20 款优秀的 Linux 终端仿真器
brotherlamp
linuxlinux视频linux资料linux自学linux教程
终端仿真器是一款用其它显示架构重现可视终端的计算机程序。换句话说就是终端仿真器能使哑终端看似像一台连接上了服务器的客户机。终端仿真器允许最终用户用文本用户界面和命令行来访问控制台和应用程序。(LCTT 译注:终端仿真器原意指对大型机-哑终端方式的模拟,不过在当今的 Linux 环境中,常指通过远程或本地方式连接的伪终端,俗称“终端”。)
你能从开源世界中找到大量的终端仿真器,它们
- Solr Deep Paging(solr 深分页)
eksliang
solr深分页solr分页性能问题
转载请出自出处:http://eksliang.iteye.com/blog/2148370
作者:eksliang(ickes) blg:http://eksliang.iteye.com/ 概述
长期以来,我们一直有一个深分页问题。如果直接跳到很靠后的页数,查询速度会比较慢。这是因为Solr的需要为查询从开始遍历所有数据。直到Solr的4.7这个问题一直没有一个很好的解决方案。直到solr
- 数据库面试题
18289753290
面试题 数据库
1.union ,union all
网络搜索出的最佳答案:
union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
2.索引有哪些分类?作用是
- Android TV屏幕适配
酷的飞上天空
android
先说下现在市面上TV分辨率的大概情况
两种分辨率为主
1.720标清,分辨率为1280x720.
屏幕尺寸以32寸为主,部分电视为42寸
2.1080p全高清,分辨率为1920x1080
屏幕尺寸以42寸为主,此分辨率电视屏幕从32寸到50寸都有
适配遇到问题,已1080p尺寸为例:
分辨率固定不变,屏幕尺寸变化较大。
如:效果图尺寸为1920x1080,如果使用d
- Timer定时器与ActionListener联合应用
永夜-极光
java
功能:在控制台每秒输出一次
代码:
package Main;
import javax.swing.Timer;
import java.awt.event.*;
public class T {
private static int count = 0;
public static void main(String[] args){
- Ubuntu14.04系统Tab键不能自动补全问题解决
随便小屋
Ubuntu 14.04
Unbuntu 14.4安装之后就在终端中使用Tab键不能自动补全,解决办法如下:
1、利用vi编辑器打开/etc/bash.bashrc文件(需要root权限)
sudo vi /etc/bash.bashrc
接下来会提示输入密码
2、找到文件中的下列代码
#enable bash completion in interactive shells
#if
- 学会人际关系三招 轻松走职场
aijuans
职场
要想成功,仅有专业能力是不够的,处理好与老板、同事及下属的人际关系也是门大学问。如何才能在职场如鱼得水、游刃有余呢?在此,教您简单实用的三个窍门。
第一,多汇报
最近,管理学又提出了一个新名词“追随力”。它告诉我们,做下属最关键的就是要多请示汇报,让上司随时了解你的工作进度,有了新想法也要及时建议。不知不觉,你就有了“追随力”,上司会越来越了解和信任你。
第二,勤沟通
团队的力
- 《O2O:移动互联网时代的商业革命》读书笔记
aoyouzi
读书笔记
移动互联网的未来:碎片化内容+碎片化渠道=各式精准、互动的新型社会化营销。
O2O:Online to OffLine 线上线下活动
O2O就是在移动互联网时代,生活消费领域通过线上和线下互动的一种新型商业模式。
手机二维码本质:O2O商务行为从线下现实世界到线上虚拟世界的入口。
线上虚拟世界创造的本意是打破信息鸿沟,让不同地域、不同需求的人
- js实现图片随鼠标滚动的效果
百合不是茶
JavaScript滚动属性的获取图片滚动属性获取页面加载
1,获取样式属性值
top 与顶部的距离
left 与左边的距离
right 与右边的距离
bottom 与下边的距离
zIndex 层叠层次
例子:获取左边的宽度,当css写在body标签中时
<div id="adver" style="position:absolute;top:50px;left:1000p
- ajax同步异步参数async
bijian1013
jqueryAjaxasync
开发项目开发过程中,需要将ajax的返回值赋到全局变量中,然后在该页面其他地方引用,因为ajax异步的原因一直无法成功,需将async:false,使其变成同步的。
格式:
$.ajax({ type: 'POST', ur
- Webx3框架(1)
Bill_chen
eclipsespringmaven框架ibatis
Webx是淘宝开发的一套Web开发框架,Webx3是其第三个升级版本;采用Eclipse的开发环境,现在支持java开发;
采用turbine原型的MVC框架,扩展了Spring容器,利用Maven进行项目的构建管理,灵活的ibatis持久层支持,总的来说,还是一套很不错的Web框架。
Webx3遵循turbine风格,velocity的模板被分为layout/screen/control三部
- 【MongoDB学习笔记五】MongoDB概述
bit1129
mongodb
MongoDB是面向文档的NoSQL数据库,尽量业界还对MongoDB存在一些质疑的声音,比如性能尤其是查询性能、数据一致性的支持没有想象的那么好,但是MongoDB用户群确实已经够多。MongoDB的亮点不在于它的性能,而是它处理非结构化数据的能力以及内置对分布式的支持(复制、分片达到的高可用、高可伸缩),同时它提供的近似于SQL的查询能力,也是在做NoSQL技术选型时,考虑的一个重要因素。Mo
- spring/hibernate/struts2常见异常总结
白糖_
Hibernate
Spring
①ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
缺少aspectjweaver.jar,该jar包常用于spring aop中
②java.lang.ClassNotFoundException: org.sprin
- jquery easyui表单重置(reset)扩展思路
bozch
formjquery easyuireset
在jquery easyui表单中 尚未提供表单重置的功能,这就需要自己对其进行扩展。
扩展的时候要考虑的控件有:
combo,combobox,combogrid,combotree,datebox,datetimebox
需要对其添加reset方法,reset方法就是把初始化的值赋值给当前的组件,这就需要在组件的初始化时将值保存下来。
在所有的reset方法添加完毕之后,就需要对fo
- 编程之美-烙饼排序
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
/*
*《编程之美》的思路是:搜索+剪枝。有点像是写下棋程序:当前情况下,把所有可能的下一步都做一遍;在这每一遍操作里面,计算出如果按这一步走的话,能不能赢(得出最优结果)。
*《编程之美》上代码有很多错误,且每个变量的含义令人费解。因此我按我的理解写了以下代码:
*/
- Struts1.X 源码分析之ActionForm赋值原理
chenbowen00
struts
struts1在处理请求参数之前,首先会根据配置文件action节点的name属性创建对应的ActionForm。如果配置了name属性,却找不到对应的ActionForm类也不会报错,只是不会处理本次请求的请求参数。
如果找到了对应的ActionForm类,则先判断是否已经存在ActionForm的实例,如果不存在则创建实例,并将其存放在对应的作用域中。作用域由配置文件action节点的s
- [空天防御与经济]在获得充足的外部资源之前,太空投资需有限度
comsci
资源
这里有一个常识性的问题:
地球的资源,人类的资金是有限的,而太空是无限的.....
就算全人类联合起来,要在太空中修建大型空间站,也不一定能够成功,因为资源和资金,技术有客观的限制....
&
- ORACLE临时表—ON COMMIT PRESERVE ROWS
daizj
oracle临时表
ORACLE临时表 转
临时表:像普通表一样,有结构,但是对数据的管理上不一样,临时表存储事务或会话的中间结果集,临时表中保存的数据只对当前
会话可见,所有会话都看不到其他会话的数据,即使其他会话提交了,也看不到。临时表不存在并发行为,因为他们对于当前会话都是独立的。
创建临时表时,ORACLE只创建了表的结构(在数据字典中定义),并没有初始化内存空间,当某一会话使用临时表时,ORALCE会
- 基于Nginx XSendfile+SpringMVC进行文件下载
denger
应用服务器Webnginx网络应用lighttpd
在平常我们实现文件下载通常是通过普通 read-write方式,如下代码所示。
@RequestMapping("/courseware/{id}")
public void download(@PathVariable("id") String courseID, HttpServletResp
- scanf接受char类型的字符
dcj3sjt126com
c
/*
2013年3月11日22:35:54
目的:学习char只接受一个字符
*/
# include <stdio.h>
int main(void)
{
int i;
char ch;
scanf("%d", &i);
printf("i = %d\n", i);
scanf("%
- 学编程的价值
dcj3sjt126com
编程
发一个人会编程, 想想以后可以教儿女, 是多么美好的事啊, 不管儿女将来从事什么样的职业, 教一教, 对他思维的开拓大有帮助
像这位朋友学习:
http://blog.sina.com.cn/s/articlelist_2584320772_0_1.html
VirtualGS教程 (By @林泰前): 几十年的老程序员,资深的
- 二维数组(矩阵)对角线输出
飞天奔月
二维数组
今天在BBS里面看到这样的面试题目,
1,二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4: 4*4二维数组
{ 1 2 3 4 }
{ 5 6 7 8 }
{ 9 10 11 12 }
{13 14 15 16 }
打印顺序
4
3 8
2 7 12
1 6 11 16
5 10 15
9 14
13
要
- Ehcache(08)——可阻塞的Cache——BlockingCache
234390216
并发ehcacheBlockingCache阻塞
可阻塞的Cache—BlockingCache
在上一节我们提到了显示使用Ehcache锁的问题,其实我们还可以隐式的来使用Ehcache的锁,那就是通过BlockingCache。BlockingCache是Ehcache的一个封装类,可以让我们对Ehcache进行并发操作。其内部的锁机制是使用的net.
- mysqldiff对数据库间进行差异比较
jackyrong
mysqld
mysqldiff该工具是官方mysql-utilities工具集的一个脚本,可以用来对比不同数据库之间的表结构,或者同个数据库间的表结构
如果在windows下,直接下载mysql-utilities安装就可以了,然后运行后,会跑到命令行下:
1) 基本用法
mysqldiff --server1=admin:12345
- spring data jpa 方法中可用的关键字
lawrence.li
javaspring
spring data jpa 支持以方法名进行查询/删除/统计。
查询的关键字为find
删除的关键字为delete/remove (>=1.7.x)
统计的关键字为count (>=1.7.x)
修改需要使用@Modifying注解
@Modifying
@Query("update User u set u.firstna
- Spring的ModelAndView类
nicegege
spring
项目中controller的方法跳转的到ModelAndView类,一直很好奇spring怎么实现的?
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* yo
- 搭建 CentOS 6 服务器(13) - rsync、Amanda
rensanning
centos
(一)rsync
Server端
# yum install rsync
# vi /etc/xinetd.d/rsync
service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait
- Learn Nodejs 02
toknowme
nodejs
(1)npm是什么
npm is the package manager for node
官方网站:https://www.npmjs.com/
npm上有很多优秀的nodejs包,来解决常见的一些问题,比如用node-mysql,就可以方便通过nodejs链接到mysql,进行数据库的操作
在开发过程往往会需要用到其他的包,使用npm就可以下载这些包来供程序调用
&nb
- Spring MVC 拦截器
xp9802
spring mvc
Controller层的拦截器继承于HandlerInterceptorAdapter
HandlerInterceptorAdapter.java 1 public abstract class HandlerInterceptorAdapter implements HandlerIntercep