CharSet com nio

Ola pessoal,

estou com um problema ao ler um arquivo no linux, esse arquivo gera um determinado conteudo a ser renderizado por uma pagina, quando o arquivo possui caracteres especiais(á, é) ele nao le o caractere corretamente, fiz um metodo para ler o arquivo com encoding mas estou com duvidas se a implementacao esta correta, o problema eh q so da pra testar em ambiente de producao, sera que alguem poderia me dizer se a implementacao esta correta???

public static String readData(String filePath, String charSet) throws Exception {

	Charset cs = Charset.forName(charSet);
	
    CharsetDecoder decoder = cs.newDecoder() ; 
	
    FileInputStream fis = new FileInputStream(new File(filePath));
    
    FileChannel fc = fis.getChannel(); 
    
    MappedByteBuffer mappedByteBuffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());  
    
    CharBuffer cb = decoder.decode(mappedByteBuffer) ; 
    
    fc.close();

    return cb.toString();
    
}