这是一个很重要的一个字节数组处理缓冲工具,它封装了字节缓冲器及对字节缓冲区的操作,包括对缓冲区的写入.读取.扩展缓冲区大小等等,另外还提供相应字符编码的转码操作.此工具让缓冲操作变得更加方便,除了缓冲区他还有两个channel--ByteInputChannel和ByteOutputChannel,这两个通道一个用于输入读取数据,一个用于输出数据,并且会自动判断缓冲区是否超出规定的缓冲大小,一旦超出则把缓冲区数据全部输出. 如上图,缓冲区buf负责存放待输出的字节数组,此区域有初始值及最大值,在…
添加快捷代码块 在开发过程中,一些常用的代码段,我们可以设置成快捷代码段来快速实现代码的编写. 如上图中的属性的设置,它们都有相同重复的代码@property (nonatomic, strong),为了快速编写,我们这里就把它设置成快捷代码段 出现如图的框框 点击Edit Title为设置代码段的标题 Completion Shortcut为设置的快捷代码,当在xcode里输入这个快捷代码,就会出现你设置的代码片段 Completion Scopes为需要设置的启动作用域,如某些方法内就不能启…
上一篇介绍了如何给未检查异常快速增加try/catch语句,这里在补充一点其他相关操作.有时候我们增加了try/catch之后还需要在加一个finally块,比如android上每次分配一个cursor最好在代码末尾增加finally块,在其中关闭cursor防止内存泄露.android上cursor总共可占用内存的大小是2M,如果哪个应用的高频方法没有及时关闭cursor的话,会造成其它模块都无法分配cursor的严重后果.下面我们就介绍如何增加finally块的快捷操作. 步骤一:基于上一篇…
站在编译器的角度来看,java中的异常可以分为两种,已检查异常和未检查异常.对于已检查异常比如IO操作,编译器会要求设置try/catch语句块,在eclipse中也只要使用帮助快捷键ctrl+1,就可以自动生成try/catch代码.对于未检查的异常,编译器不会要求你添加保护块,IDE的帮助快捷键也没有作用.强大的eclipse还是为我们提供了自动生成try/catch的功能.        步骤一:选择需要增加try/catch保护的代码,注意要完整的一行,接着单击右键:         步…
UICollectionView 瀑布流 添加表头视图的坑 首先是,需求加了个头视图在顶部,在collectionView中的头视图跟TableView的不一样,TableView的表头只要设置tableview.tableHeaderView就可以了. collectionView 怎么添加这样的效果的呢 有两种思路 第一种:在collectionView的段头代理中设置 (只在第一段中设置) 第二种:改变 collectionView 的内延距离, 然后添加在内延空白的位置. 第一种 //…
Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字节流与字符流的时候,大家都进行过读取文件中数据的操作,读取数据量大的文件时,读取的速度会很慢,很影响我们程序的效率,那么,我想提高速度,怎么办?Java中提高了一套缓冲流,它的存在,可提高IO流的读写速度 缓冲流,根据流的分类分为字节缓冲流与字符缓冲流.本篇博客主要介绍的是字节缓冲流. 一.字节缓冲…
自定义异常 概念 使用Java内置的异常可以描述在编辑时出现的大部分异常情况.除此之外,用户还可以自定义异常.用户自定义异常类,只需继承Exception类即可. 在程序中使用自定义异常类,大体可分为以下几个步骤: 创建自定义异常类 在方法中通过throw关键字抛出异常对象 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理:否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作. 在出现异常方法的代用者中捕获并处理异常. 代码 //…
一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read 方法要提供的下一个字节 关闭ByteArrayInputStream流无效.此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException   类 ByteArrayOutputStream:在构造函数的时候,不用定义数据目的,因为该对象中内部已经封装了可变长度的字节数组,这就是数据的…
#include <stdio.h> #include <string.h> int main() { ]={}; FILE* fp = fmemopen(buf,,"w+"); fprintf(fp,"hello world!"); printf("before:%s\n",buf); fflush(fp); printf("after:%s\n",buf); printf("len=%d\…
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(actionTap)]; [aView addGestureRecognizer:tap]; [tap release]; 以上是很简单的给一个UIView 添加 单击手势的方法. 下面我们来改进他支持代码快 先建立一个类别 @interface UIView (XY) -(void) addTapG…