Как стереть существующий текст в файле

Я работаю над присвоением для школы и пробую что-то вне за дополнительный кредит. Программа должна продемонстрировать различия в эффективности между линейным и двоичным поиском данного размера массива целых чисел. Мне настраивали цикл, который создает интервал [размер] массив, ищет случайное число, затем создает новый массив интервала [size*2].

Результаты затем записаны в текстовый файл. Выходные прекрасные записи, но после компиляции и запущения программы несколько раз, выходной файл имеет это много разделов данных.

Это - мой код, который вкладывается в блоке попытки/выгоды:

File output= new File("c:\\BigOhResults.txt");
int counter=2;

if (output.canWrite() && output.exists()) {
    BufferedWriter out= new BufferedWriter(new FileWriter(output, true));
    out.write(type+" \n\n"); //writes the search type
    out.write(type+"Search Results\n\n");

    while (counter <= data.size()) {
        out.write(data.get(counter-1)+" millisecond runtime " +
        "for a "+ data.get(counter-2)+" random number " +"sample size\n");
        counter=counter+2;
    }
}

Есть ли какой-либо способ, которым я могу стереть текст в том выходном файле на каждый раз, когда программа запущена?

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

7
задан Bill the Lizard 18 September 2012 в 14:08
поделиться

3 ответа

Как уже упоминалось, конструктор [FileWriteriater] [1] позволяет указать для очистки существующего текста и начать в начале файла. Некоторые другие замечания о коде:

  • Проверка на выходе. Экстриальные () избыточны после вызова на вывод. CanWrite () и не требуется. Вывод. CanWrite () проверит, существует ли файл и что вы можете написать ему.
  • Не забудьте закрыть объект буферитра.

Вроде так:

if (output.canWrite()) {
    BufferedWriter out = null;
    try {
        out = new BufferedWriter(new FileWriter(output, false));
        out.write(type+" \n\n"); //writes the search type
        out.write(type+"Search Results\n\n");

        while (counter <= data.size()) {
            out.write(data.get(counter-1)+" millisecond runtime " +
              "for a "+ data.get(counter-2)+" random number " +"sample size\n");
            counter=counter+2;
        }
    } catch (IOException e) {
        // Do what you want here, print a message or something
    } finally {
        if(out != null) {
            try {
                out.close();
            } catch (IOException e) {
                // Again, do what you want here
            }
        }
    }

}

[1]: : http://java.sun.com/j2se/1.4.2/docs/api/java/io/filewriter.html#filewriter (java.io.file , Boolean)

3
ответ дан 6 December 2019 в 21:14
поделиться

Вторым аргументом к конструктору файловика, который вы передаете «Правда», это «Приложение». Я Поскольку вы установили его на TAVE, он добавит ваш новый выход в конец файла. Если вы проходите в False вместо этого, он будет стереть данные, которые уже есть и напишите его новым.

5
ответ дан 6 December 2019 в 21:14
поделиться

Прочитайте документацию для файлмарата . Вы делаете не Хотите добавить.

4
ответ дан 6 December 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: