⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multipartentryassembler.java

📁 用Java写的彩信的程序。包括wsp/mime/mms几部分。
💻 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 + -