encoding = System.getProperty("file.encoding");
encoding = SystemProperties.getProperty("file.encoding");
  public InputStreamReader(InputStream in)  {    if (in == null)      throw new NullPointerException();    this.in = in;    try 	{ 	  encoding = System.getProperty("file.encoding");	  // Don't use NIO if avoidable	  if(EncodingHelper.isISOLatin1(encoding))	    {	      encoding = "ISO8859_1";	      maxBytesPerChar = 1f;	      decoder = null;	      return;	    }	  Charset cs = EncodingHelper.getCharset(encoding);	  decoder = cs.newDecoder();	  encoding = EncodingHelper.getOldCanonical(cs.name());	  try {	      maxBytesPerChar = cs.newEncoder().maxBytesPerChar();	  } catch(UnsupportedOperationException _){	      maxBytesPerChar = 1f;	  } 	  decoder.onMalformedInput(CodingErrorAction.REPLACE);	  decoder.onUnmappableCharacter(CodingErrorAction.REPLACE);	  decoder.reset();	} catch(RuntimeException e) {	  encoding = "ISO8859_1";	  maxBytesPerChar = 1f;	  decoder = null;	} catch(UnsupportedEncodingException e) {	  encoding = "ISO8859_1";	  maxBytesPerChar = 1f;	  decoder = null;	}  }