001 package com.croftsoft.core.io; 002 003 import java.io.*; 004 005 import com.croftsoft.core.lang.NullArgumentException; 006 007 /********************************************************************* 008 * A String Encoder and Parser. 009 * 010 * @version 011 * 2003-06-02 012 * @since 013 * 2003-06-01 014 * @author 015 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 016 *********************************************************************/ 017 018 public final class StringCoder 019 implements Encoder, Parser 020 ////////////////////////////////////////////////////////////////////// 021 ////////////////////////////////////////////////////////////////////// 022 { 023 024 public static final String US_ASCII = "US-ASCII"; 025 026 public static final String UTF_8 = "UTF-8"; 027 028 // 029 030 private final String charSetName; 031 032 ////////////////////////////////////////////////////////////////////// 033 ////////////////////////////////////////////////////////////////////// 034 035 public StringCoder ( String charSetName ) 036 ////////////////////////////////////////////////////////////////////// 037 { 038 NullArgumentException.check ( this.charSetName = charSetName ); 039 } 040 041 ////////////////////////////////////////////////////////////////////// 042 ////////////////////////////////////////////////////////////////////// 043 044 public byte [ ] encode ( Object object ) 045 throws IOException 046 ////////////////////////////////////////////////////////////////////// 047 { 048 return object.toString ( ).getBytes ( charSetName ); 049 } 050 051 public Object parse ( 052 InputStream inputStream, 053 int contentLength ) 054 throws IOException 055 ////////////////////////////////////////////////////////////////////// 056 { 057 return StreamLib.toString ( inputStream, charSetName ); 058 } 059 060 ////////////////////////////////////////////////////////////////////// 061 ////////////////////////////////////////////////////////////////////// 062 }