1 28 29 package com.caucho.vfs.i18n; 30 31 import com.caucho.vfs.OutputStreamWithBuffer; 32 33 import java.io.IOException ; 34 35 38 public final class ISO8859_1Writer extends EncodingWriter { 39 private final static ISO8859_1Writer _writer = new ISO8859_1Writer(); 40 41 44 public ISO8859_1Writer() 45 { 46 } 47 48 51 public String getJavaEncoding() 52 { 53 return "ISO8859_1"; 54 } 55 56 61 public EncodingWriter create(String javaEncoding) 62 { 63 return _writer; 64 } 65 66 71 public EncodingWriter create() 72 { 73 return _writer; 74 } 75 76 79 public static EncodingWriter getStaticWriter() 80 { 81 return _writer; 82 } 83 84 89 public void write(OutputStreamWithBuffer os, char ch) 90 throws IOException 91 { 92 os.write(ch); 93 } 94 95 102 public void write(OutputStreamWithBuffer os, 103 char []cBuf, int cOffset, int cLength) 104 throws IOException 105 { 106 byte []bBuf = os.getBuffer(); 107 int bOffset = os.getBufferOffset(); 108 int bEnd = bBuf.length; 109 110 112 while (cLength > 0) { 113 int sublen = bEnd - bOffset; 114 if (cLength < sublen) 115 sublen = cLength; 116 117 for (int i = 0; i < sublen; i++) { 118 bBuf[bOffset + i] = (byte) cBuf[cOffset + i]; 119 } 120 121 bOffset += sublen; 122 cOffset += sublen; 123 cLength -= sublen; 124 125 if (bOffset == bEnd) { 126 bBuf = os.nextBuffer(bOffset); 127 bOffset = os.getBufferOffset(); 128 bEnd = bBuf.length; 129 } 130 } 131 132 os.setBufferOffset(bOffset); 133 } 134 } 135 | Popular Tags |