Input(Object input)
		throws IOException
	{
		if (input instanceof InputStream)
			this.inputStream = input instanceof BufferedInputStream ? (InputStream)input : new BufferedInputStream((InputStream)input);
		else	
		if (input instanceof Reader)
			this.reader = input instanceof BufferedReader ? (Reader)input : new BufferedReader((Reader)input);
		else
		if (input instanceof File)
			this.reader = new BufferedReader(new FileReader((File)input));
		else
		if (input instanceof StringBuffer || input instanceof String)
			this.reader = new StringReader(input.toString());
		else
			throw new IllegalArgumentException("Unknown input object: "+(input != null ? input.getClass().getName() : "null"));
	}