не зависящий от платформы / dev / null выходной приемник для Java - PullRequest
12 голосов
/ 24 января 2010

Кроме анонимного класса (new OutputStream() { ... }), кто-нибудь может предложить моральный эквивалент new FileOutputStream("/dev/null"), который также работает в Windows?

В случае, если кто-то задается вопросом «для чего это нужно?»

У меня есть программа, которая выполняет анализ согласованности файла. У него есть «подробный» вариант. Когда включена опция verbose, я хочу увидеть много выходных данных. Программа не спешит, это инструмент, поэтому вместо того, чтобы писать все эти дополнительные операторы if, чтобы проверить, нужен ли мне вывод, я просто хочу записать его в корзину, когда это не нужно.

Ответы [ 3 ]

18 голосов
/ 24 января 2010

Вы можете использовать NullOutputStream из Apache Commons https://commons.apache.org/proper/commons-io/javadocs/api-2.4/org/apache/commons/io/output/NullOutputStream.html

Или просто реализовать свой собственный

package mypackage;

import java.io.OutputStream;
import java.io.IOException;

public class NullOutputStream extends OutputStream {
    public void write(int i) throws IOException {
        //do nothing
    }
}
4 голосов
/ 24 января 2010

NUL работает для Windows NT, но не работает в * NIX.

output = new FileOutputStream("NUL");

Лучше использовать NullOutputStream Commons IO вместо того, чтобы быть независимым от платформы.

0 голосов
/ 13 июня 2018

Пока вас не волнует небольшая разница в производительности (и вы не чувствуете, что вам может не хватить места), вы можете просто использовать "/ dev / null". В Windows он создаст настоящий файл на любом вашем текущем диске (например, c: \ dev \ null).

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