📄 multipartentryassembler.java
字号:
/*
* JVending - J2ME MMS Client
*
* Distributed under Apache style software license included with the source code.
*/
package org.jvending.messaging.mime;
import org.jvending.messaging.ITokenizer;
import org.jvending.messaging.io.PeekInputStream;
import java.io.DataInputStream;
import java.io.InputStream;
import java.io.IOException;
import java.io.EOFException;
import java.util.Enumeration;
import java.util.NoSuchElementException;
import org.jvending.messaging.util.MmsDecodingUtility;
/**
* @author Shane Isbell
* @version 1.0.0a
* @created 04/03/27
*/
public class MultipartEntryAssembler {
private PeekInputStream dis;
public MultipartEntryAssembler(InputStream is) {
this.setInputStream(is);
}
public MultipartEntryAssembler(PeekInputStream is) {
this.dis = is;
}
public boolean hasMoreElements() {
return true;
}
private byte[] readHeaders(PeekInputStream dis, int length) throws IOException {
byte[] b = new byte[length];
byte k = 0;int i = 0;
while(i < length) {
k = (byte) dis.readByte();
b[i++] = k;
}
return b;
}
private byte[] readContent(PeekInputStream dis, int length) throws IOException {
byte[] data = new byte[length];
byte k = 0; int i = 0;
// dis.read(data, 0, length);
while(i < length) {//FIX ME:
k = (byte) dis.readByte();
data[i] = k;
i++;
}
return data;
}
public MultipartEntry nextEntry() throws NoSuchElementException {
MultipartEntry me = new MultipartEntry();
try {
Long headerLength = MmsDecodingUtility.readUintvarInteger(dis);
me.setHeaderLength((int) headerLength.longValue());
Long dataLength = MmsDecodingUtility.readUintvarInteger(dis);
me.setDataLength((int) dataLength.longValue());
int len = ((int) headerLength.longValue()) - 1;
int contentType = (dis.readUnsignedByte() & 0x7f);
me.setContentType(contentType);
byte[] headers = readHeaders(dis, len);
me.setHeaders(headers);
me.setData(readContent(dis, (int) dataLength.longValue()));
} catch(IOException e) {
e.printStackTrace();
}
return me;
}
public void setInputStream(InputStream is) {
dis = new PeekInputStream(is);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -