Как удалить только содержимое файла в Java? - PullRequest
7 голосов
/ 12 апреля 2010

Как я могу удалить содержимое файла в Java?

Ответы [ 6 ]

13 голосов
/ 12 апреля 2010

Как насчет этого:

new RandomAccessFile(fileName).setLength(0);
3 голосов
/ 05 марта 2013
new FileOutputStream(file, false).close();
1 голос
/ 17 декабря 2013

Может проблема в том, что это оставляет только голову, а не хвост?

public static void truncateLogFile(String logFile) {
    FileChannel outChan = null;
    try {
        outChan = new FileOutputStream(logFile, true).getChannel();
    }
    catch (FileNotFoundException e) {
        e.printStackTrace();
        System.out.println("Warning Logfile Not Found: " + logFile);
    }

    try {
        outChan.truncate(50);
        outChan.close();
    }
    catch (IOException e) {
        e.printStackTrace();
        System.out.println("Warning Logfile IO Exception: " + logFile);
    }
}
1 голос
/ 12 апреля 2010

Вы можете сделать это, открыв файл для записи и затем обрезав его содержимое , в следующем примере используется NIO:

import static java.nio.file.StandardOpenOption.*;

Path file = ...;

OutputStream out = null;
try {
    out = new BufferedOutputStream(file.newOutputStream(TRUNCATE_EXISTING));
} catch (IOException x) {
    System.err.println(x);
} finally {
    if (out != null) {
        out.flush();
        out.close();
    }
}

Другой способ : обрезать только последние 20 байтов файла:

import java.io.RandomAccessFile;


RandomAccessFile file  = null; 
try { 
    file = new RandomAccessFile ("filename.ext","rw");
    // truncate 20 last bytes of filename.ext 
    file.setLength(file.length()-20); 
} catch (IOException x) { 
    System.err.println(x); 
} finally { 
    if (file != null) file.close(); 
} 
0 голосов
/ 26 октября 2016
try {
        PrintWriter writer = new PrintWriter(file);
        writer.print("");
        writer.flush();
        writer.close();

    }catch (Exception e)
    {

    }

Этот код удаляет текущее содержимое файла и устанавливает длину файла равной 0.

0 голосов
/ 12 апреля 2010

Откройте файл для записи и сохраните его. Он удаляет содержимое файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...