Как использовать PrintStream для записи в текстовый файл, не оставляя пустых строк между каждой строкой? - PullRequest
1 голос
/ 06 апреля 2019

Я делаю проект телефонной книги для школьного домашнего задания. Что мне нужно сделать, это сохранить информацию о каждом человеке в текстовом файле и читать ее каждый раз, когда запускается программа. Однако каждый раз, когда он сохраняет информацию в текстовом файле, он оставляет пустую строку между каждой строкой. Это приводит к тому, что программа считывает пустую строку между тем, когда мне нужно прочитать информацию из текстового файла. Это вызывает ошибку в моем коде.

Я попытался использовать trim () в своей функции чтения, чтобы пропустить пустые строки.

        while((currentLine= reader.readLine()) != null){
            String emptySpace = currentLine.trim();
            if(!emptySpace.equals("")) {
                ...
                ...
            }

Это моя функция хранения

    public static void storePhoneBook (String FileName, Entry[] entryList, int totalEntry) throws Exception{
        PrintStream P = new PrintStream(FileName);
        for (int i=0; i < totalEntry; i++) {
            P.println(entryList[i].name + "\t" +
                    entryList [i].number + "\t" +
                    entryList [i].notes + "\n");
        }
        P.close();
        System.out.println("Phone book stored.");
    }

И то, что записано в текстовом файле, таково. Они имеют пустое пространство между каждой строкой.

Bill    419-536-1234     Bill Gates

JB  510-0114    Charlie's place

Jones   413-257-1234    Karen and Jason

wm  419-257-1234    Walmart

Можно ли записать в файл, не оставляя пустых строк между каждой строкой? Функция trim () в этом случае работает, но я не думаю, что это самый эффективный способ сделать это.

1 Ответ

1 голос
/ 06 апреля 2019

используйте p.print вместо p.println println добавляет разрыв '[l] i [n] e' после печати в вашем примере, хотя вы не можете просто поставить "\ n" в конце, которыйобозначение строки для строки [n] ew

...