Возможно, у вас ошибка кодирования. Конструктор, который вы используете для InputStreamReader, использует кодировку символов по умолчанию; если ваш файл содержит текст UTF-8 вне диапазона ASCII, вы получите мусор. Кроме того, вам не нужен DataInputStream, поскольку вы не читаете никаких объектов данных из потока. Попробуйте этот код:
FileInputStream fstream = null;
try {
fstream = new FileInputStream("c:\\hello.txt");
// Decode data using UTF-8
BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String strLine;
// Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console
System.out.println(strLine);
}
} catch (Exception e) {// Catch exception if any
System.err.println("Error: " + e.getMessage());
} finally {
if (fstream != null) {
try { fstream.close(); }
catch (IOException e) {
// log failure to close file
}
}
}