|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Objectorg.nutz.mvc.upload.util.BufferRing
public class BufferRing
分页缓冲 - 专为高效的成块的解析 HTTP Multipart 输入流而设计
总体的想法是,在内存中构建一个数组环,每个节点是固定宽度的数组(默认8192)。
每次翻页 都相当于将当前环节点的下一个节点读满
每个环节点都有指针指向其下一个节点
每个节点都有一个有效结尾位置以及本节点是否为一个输入流的最末节点
支持一个便利的标记方法(不支持回溯,标记的开始和结束只能在一个节点内不能跨节点)
支持成块写到输出流
考虑到效率问题,BufferRing 有一些基本假设:
构造方法摘要 | |
---|---|
BufferRing(java.io.InputStream ins,
int len,
int width)
|
方法摘要 | |
---|---|
void |
close()
安全关闭输入流 |
void |
dump(java.io.OutputStream ops)
被 Dump 的节点将会通过标志表示可以再次加载 |
java.lang.String |
dumpAsString(java.lang.String charset)
将标记的内容 Dump 成一个字符串 |
long |
load()
从当前节点的 next 开始,依次将所有可用的节点全部加载满 |
MarkMode |
mark(RemountBytes rb)
|
long |
readed()
|
void |
skipMark()
不输出,直接跳过 Mark,相当于将当前的 Mark dump 到一个空的输出流 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public BufferRing(java.io.InputStream ins, int len, int width)
方法详细信息 |
---|
public MarkMode mark(RemountBytes rb) throws java.io.IOException
java.io.IOException
public void dump(java.io.OutputStream ops) throws java.io.IOException
ops
- 输出流,如果为 null,则不会输出,直接改变标志
java.io.IOException
public java.lang.String dumpAsString(java.lang.String charset) throws java.io.IOException
java.io.IOException
public void skipMark() throws java.io.IOException
java.io.IOException
public long load() throws java.io.IOException
java.io.IOException
public long readed()
public void close()
|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |