Hirdetés

Keresés

Új hozzászólás Aktív témák

  • floatr
    veterán

    Ez tuti? Amennyire én tudom és ahogy az implementációt is nézem, a close() magától flush-öl a java standard outpustream-jeiben. Meg az internet is ezt mondja. :)

    Na megint megelőztek.

    public abstract class OutputStream implements Closeable, Flushable {
    ...
    public void close() throws IOException {
    }
    ...
    }

    public
    class FileOutputStream extends OutputStream
    {
    ...
    public void close() throws IOException {
    synchronized (closeLock) {
    if (closed) {
    return;
    }
    closed = true;
    }

    if (channel != null) {
    channel.close();
    }

    fd.closeAll(new Closeable() {
    public void close() throws IOException {
    close0();
    }
    });
    }
    ...
    }

    public
    class FilterOutputStream extends OutputStream {
    ...
    public void close() throws IOException {
    try (OutputStream ostream = out) {
    flush();
    }
    }
    ...
    }

    A BufferedOutputStream az utóbbit terjeszti ki.
    Ezért mondom azt, hogy kötelező a flush, mert van olyan implementáció, ami megcsinálja, van olyan, ami nem. Könnyű benézni.

Új hozzászólás Aktív témák