Почему выводит только последнюю строку из файла?

import java.io.*;

public class Price4 {
    public static void main(String[] args) throws IOException {
        String name = "D:\\product.txt";// в файле 3 строки
        if (args.length != 0) {
            FileInputStream inName = new FileInputStream(name); int i;
            BufferedReader br = new BufferedReader(new InputStreamReader(inName, "UTF-8"));
            StringBuilder stringBuilder = new StringBuilder();
            while ((i = br.read()) != -1) {
                char ch = (char) i;
                stringBuilder.append(ch);
            }
            System.out.println(stringBuilder); // а выводит одну последнюю строку
        }
    }
}

Ответы (1 шт):

Автор решения: Storozhev DJ

А если воспользоваться методом чтения построчно

import java.io.*;

public class Price4 {
    public static void main(String[] args) throws IOException {
        String name = "D:\\product.txt";// в файле 3 строки
        if (args.length != 0) {
            FileInputStream inName = new FileInputStream(name); int i;
            BufferedReader br = new BufferedReader(new InputStreamReader(inName, "UTF-8"));
            StringBuilder stringBuilder = new StringBuilder();
            String line;
            while((line = br.readLine()) != null) {
                stringBuilder.append(line);
                System.out.println(line); // выводим содержимое файла на экран построчно
            }
        bufferedReader.close(); // закрываем поток
        }
    }
}
→ Ссылка