I would recommend to use UnicodeReader from Google Data API, see this answerthis answer for a similar question. It will automatically detect encoding from the Byte order mark (BOM).
You may also consider BOMInputStream in Apache Commons IO which does basically the same but does not cover all alternative versions of BOM.