Метод FileWriter ничего не печатает, если append is true - PullRequest
0 голосов
/ 05 сентября 2018

Новичок здесь. Моя цель - прочитать текстовый файл, исключить символы ("-" и "") и заменить существующий текст новым очищенным текстом.

пример: 855-555-1234 >> 8555551234.

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

Когда мое добавление имеет значение true, тогда я получаю нужный текст в конце файла, но когда он равен false, файл полностью пустой.

Мой основной метод выглядит так:

public class Main {

public static void main(String[] args) throws IOException{

    String file_name = "C:/TollFreeToPort.txt";
    try {
        ReadFile file = new ReadFile(file_name);
        String[] aryLines = file.OpenFile();

        WriteFile data = new WriteFile(file_name, true);

        int i;

        for (i = 0; i < aryLines.length; i++) {

            System.out.println(aryLines[i]);
            data.writeToFile(aryLines[i]);
        }
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
  }
}

Мой класс ReadFile:

package textfiles;
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;

public class ReadFile {

private String path;

public ReadFile(String file_path) {
    path = file_path;
}

public String[] OpenFile() throws IOException {
    FileReader fr = new FileReader(path);
    BufferedReader textReader = new BufferedReader(fr);

    int numberOfLines = readLines();
    String[] textData = new String[numberOfLines];

    int i;

    for (i = 0; i < numberOfLines; i++) {
        textData[i] = textReader.readLine()
        .replace("-", "")
        .replace(" ", "");
    }

    textReader.close();

    return textData;

}

int readLines() throws IOException {
    FileReader file_to_read = new FileReader(path);
    BufferedReader bf = new BufferedReader(file_to_read);

    String aLine;
    int numberOfLines = 0;

    while ((aLine = bf.readLine()) != null) {
        numberOfLines++;
    }
    bf.close();

    return numberOfLines;
  }
}

Мой класс WriteFile:

package textfiles;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.IOException;

public class WriteFile {

private  String path;
private boolean append_to_file = false;

public WriteFile(String file_path) {
    path = file_path;
}

public WriteFile(String file_path, boolean append_value) {
    path = file_path;
    append_to_file = append_value;
}

public void writeToFile (String textLine) throws IOException{
    FileWriter write = new FileWriter(path, append_to_file);
    PrintWriter print_line = new PrintWriter(write);

    print_line.printf("%s" + "%n", textLine);
    print_line.close();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...