2014-09-05 4 views
1

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

PrintWriter writer = new PrintWriter(file.tctl); writer.print(""); writer.close();

но файл не работает больше. Поэтому, если есть еще один способ очистки содержимого файла.

ответ

-1

вызове метода записи(), как это:

.write((new String()).getBytes()); 

Это сделает ваш файл пуст. Если это не работает, попробуйте с этим:

FileOutputStream erasor = new FileOutputStream("filename.ext"); 
erasor.write((new String()).toByteArray()); 
erasor.close(); 

Или просто попробуйте перезаписать файл

//open file in override mode 
FileOutputStream out = new FileOutputStream("filename.ext"); 
//now anything that we write here will remove the old one so just write space ("") here 
+0

Надеюсь, что это поможет;) – voxtor

+0

yep было полезно: D – user3417644

+0

Первое предложение не компилируется: второе является излишним. – EJP

-1

Вы должны использовать FileOutputStream, а затем у вас есть метод усечения():

 
File f = new File("path-of-the-file.here"); 
FileChannel channel = new FileOutputStream(f, true).getChannel(); 
channel.truncate(0); 
channel.close(); 
+0

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

+0

Нет, новый файл не создает новый файл в каталоге, он только создает «представление файла» в java. –

+0

Удаление режима добавления и усечения работает так же хорошо: вы не «имеете» сделать это таким образом. – EJP

0

Просто удалите печать полностью из вашего кода. Вы уже обрезали файл с помощью нового FileOutputStream/PrintWriter/все, что вы используете, чтобы открыть его. Нет ввода-вывода или усечения(). Не используйте режим добавления.

+0

не могли бы вы объяснить больше, я не могу понять, что вы имеете в виду именно – user3417644

0

Самый простой способ я думаю

new RandomAccessFile("filename.ext", "rw").setLength(0); 
Смежные вопросы