Как читать символ новой строки при чтении Java ReadFile - PullRequest
0 голосов
/ 05 мая 2018

У меня простой вопрос о методе read() класса Java.

Документация говорит

Читает один символ. Этот метод будет блокироваться до тех пор, пока символ не станет доступным, не произойдет ошибка ввода-вывода или не будет достигнут конец потока.

Поэтому я пытаюсь преобразовать файл message.txt в строку и подумал, что read будет работать хорошо, так как он точно получает каждый символ. В моем текстовом файле есть новая строка, за которой следует сообщение.

message

Я настроил этот код для чтения каждого символа, включая начальную новую строку.

private static String readFile(String file) throws FileNotFoundException,IOException{
    FileReader r = new FileReader(file);
    String str="";
    int ch;
    while ((ch=r.read())!=-1)
    {
        System.out.println((char)ch);
        str+=(char)ch;
    }
    return str;
}

Однако, я получаю дополнительный символ (предположительно из новой строки) в выводе, как показано ниже. Действительно помогло бы, если бы кто-то мог подсказать мне это поведение Reader и что я должен сделать, чтобы заставить его добавить специальный символ.

print char

print char

print char m

print char e

print char s

print char s

print char a

print char g

print char e

1 Ответ

0 голосов
/ 05 мая 2018

Это дополнительное пространство, потому что вы используете "println". Таким образом, всякий раз, когда он читает символ новой строки в файле, он печатает новую строку, и «println» добавляет одну дополнительную строку к нему. Вместо «println» попробуйте «print».

...