Я работаю над присвоением для школы и пробую что-то вне за дополнительный кредит. Программа должна продемонстрировать различия в эффективности между линейным и двоичным поиском данного размера массива целых чисел. Мне настраивали цикл, который создает интервал [размер] массив, ищет случайное число, затем создает новый массив интервала [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;
}
}
Есть ли какой-либо способ, которым я могу стереть текст в том выходном файле на каждый раз, когда программа запущена?
причиной я делаю это, является преподаватель, требует распечатки результата с изображенными в виде графика данными. Я уже завершил требование построения графика, и оно хорошо работает. Я просто хочу иметь соответствие распечатки файла распечатка графика.
Как уже упоминалось, конструктор [FileWriteriater] [1] позволяет указать для очистки существующего текста и начать в начале файла. Некоторые другие замечания о коде:
Вроде так:
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)
Вторым аргументом к конструктору файловика, который вы передаете «Правда», это «Приложение». Я Поскольку вы установили его на TAVE, он добавит ваш новый выход в конец файла. Если вы проходите в False вместо этого, он будет стереть данные, которые уже есть и напишите его новым.