Java добавить новую строку после предложения (зачем удваивать новую строку для ее решения)? - PullRequest
0 голосов
/ 29 марта 2020

Поэтому, пытаясь выполнить упражнение с IOFile, я столкнулся с проблемой записи строки в текстовый файл, особенно при записи новой строки (\ n) после каждого предложения в новом файле.

Это мой код:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Main {
 public static void main(String[] args) {

    File Lyrics = new File("Lyrics.txt");
    File output = new File ("output.txt");

    try {
        Scanner myReader = new Scanner (Lyrics);
        try {
            FileWriter FBI = new FileWriter(output);
            while (myReader.hasNextLine()) {
                FBI.write(myReader.nextLine());
                FBI.write("\n");
            }
            FBI.close();
        }catch (IOException e) {}
        myReader.close();
    }catch (FileNotFoundException e) {}
  }
}

Lyrics.txt:

I could never find the right way to tell you
Have you noticed I've been gone
Cause I left behind the home that you made me
But I will carry it along

Вывод:

I could never find the right way to tell you
Have you noticed I've been gone
Cause I left behind the home that you made me
But I will carry it along
***invisible new line here

Вывод запрошенного упражнения:

I could never find the right way to tell you

Have you noticed I've been gone

Cause I left behind the home that you made me

But I will carry it along
***invisible new line here

После попытки добавить новую строку кода и выяснить, что происходит не так, я просто исправил изменение строки кода о добавлении новой строки в

FBI.write("\n\n");

Но я все еще запутался почему мне пришлось добавить двойную новую строку (\ n \ n) для написания предложений, за которыми следует новая строка ...

Ответы [ 2 ]

2 голосов
/ 29 марта 2020

\n означает новую строку.

Так что, если мой текст будет

FooBar\nHello World

, я получу

FooBar
Hello World

С \n (new- линия) заставила HelloWorld перейти на новую строку, все правильно. Но вам нужно две новые строки (текущая + одна пустая строка) вместо одной, вы должны использовать \n\n.

Ввод

FooBar\n\nHello World

Вывод

FooBar

Hello World
1 голос
/ 29 марта 2020

A \n символ новой строки начинает новую строку сразу под предыдущей строкой без пробела. Если вы хотите пустую строку между предложениями, вам нужно добавить секунду \n, чтобы создать пробел.

...