Chcę odczytać z pliku, odczyt się powiódł, ale ponieważ plik, który czytam, zawiera wiele wierszy, otrzymany ciąg zawiera „\ n” w środku. Jak sobie z tym poradzić w elegancki sposób? Nie chcę go później zastępować, czy istnieje bardziej optymalny sposób odczytu z pliku?

Wprowadź tekst

Anne big word random etc
another line here still input text

Mój kod Java:

    private static String readLineByLineJava8(String filePath) 
    {
        StringBuilder contentBuilder = new StringBuilder();
        try (Stream<String> stream = Files.lines( Paths.get(filePath), StandardCharsets.UTF_8)) 
        {
            stream.forEach(s -> contentBuilder.append(s).append("\n"));
        }
        catch (IOException e) 
        {
            e.printStackTrace();
        }
        return contentBuilder.toString();
    }

    private void ReadStringPrintOccurence() {
        String filePath = "imput.txt";
        String temp = readLineByLineJava8(filePath);
        String[] array = temp.split("\\r?\\n"); \\split in two arrays
        array = temp.split(" "); \\ further split by space
    }

Próbowałem to obejść, dzieląc tablicę najpierw za pomocą separatora linii, a następnie przez przestrzeń, która została między nimi, aby uzyskać słowa w mojej tablicy ciągów. W ten sposób otrzymuję array[4] = etc\nanother and array[9] = text\n. Jakie masz sugestie dotyczące tego?

0
Blaj Bogdan 19 grudzień 2019, 17:50
 – 
eduyayo
19 grudzień 2019, 17:51
1
Trudno mi zrozumieć, co chcesz osiągnąć. Masz plik zawierający wiele wierszy tekstu. Co byś skłamał z tym plikiem? Jaki jest sens czytania wiersz po wierszu, jeśli łączysz wszystkie wiersze separatorem wierszy? Dlaczego więc nie przeczytać od razu całego pliku?
 – 
JB Nizet
19 grudzień 2019, 17:53
1
Dołączasz \n sam stream.forEach(s -> contentBuilder.append(s).append("\n")); ???
 – 
Cwrwhaf
19 grudzień 2019, 17:54

1 odpowiedź

Jeśli dobrze rozumiem, musisz przeczytać plik zachowując znaki nowej linii ... i ostatecznie zebrać je w łańcuch. Ostatnio zrobiłem to samo, używając innego interfejsu API w plikach. Oto kod.

private static String readFileAsString(String filename) throws URISyntaxException, IOException {
   return new String(Files.readAllBytes(Paths.get(filePath)));
}

Więcej informacji znajdziesz w tym poście – https://www.mkyong. com/java/java-files-readallbytes-example/

0
Anand Vaidya 19 grudzień 2019, 17:59