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

📄 keyvaluechunk.java

📁 Mapserver的一个java客户端,包含两个applet支持地图显示。
💻 JAVA
字号:
// Copyright (C) 1998, 1999, 2001 Chris Nokleberg// Please see included LICENSE.TXTpackage com.sixlegs.image.png;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.zip.DataFormatException;import java.util.zip.Inflater;abstract class KeyValueChunkextends Chunk{    protected String key;    protected String value;    KeyValueChunk(int type)    {        super(type);    }    protected abstract boolean isCompressed();    protected String getEncoding()    {        return PngImage.LATIN1_ENCODING;    };    protected void readData()    throws IOException    {        key = readKey();        value = readValue();    }    protected String readKey()    throws IOException    {        String raw_key = in_data.readString();        if (raw_key.length() > 79)            throw new PngExceptionSoft(typeToString(type) + " string too long");        return repairKey(raw_key);    }    protected String readValue()    throws IOException    {        int L = bytesRemaining();        byte[] buf = new byte[L];        in_data.readFully(buf);        if (isCompressed()) {            byte method = buf[0];            if (method != PngImage.COMPRESSION_TYPE_BASE) {                throw new PngExceptionSoft("Unrecognized " + typeToString(type) +                                           " compression method: " + method);            }            ByteArrayOutputStream bytes = new ByteArrayOutputStream(L * 3);            byte[] tbuf = new byte[512];            Inflater inf = new Inflater();            inf.reset();            inf.setInput(buf, 1, L - 1);            try {                while (!inf.needsInput()) {                    bytes.write(tbuf, 0, inf.inflate(tbuf));                }            } catch (DataFormatException e) {                throw new PngExceptionSoft("Error inflating " + typeToString(type) + " chunk: " + e);            }            return bytes.toString(getEncoding());        } else {            return new String(buf, 0, L, getEncoding());        }    }    /* package */ static String repairKey (String k) {        char[] chs = k.toCharArray();        int i = 0, p = 0;        int L = chs.length;      BIGLOOP:        while (p < L) {            char ch = chs[p++];            if (Character.isWhitespace(ch)) {                if (i > 0) chs[i++] = ' ';                while (Character.isWhitespace(ch = chs[p++]))                    if (p == L) break BIGLOOP;            }            chs[i++] = ch;        }        if (Character.isWhitespace(chs[i-1])) i--;        return new String(chs, 0, i);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -