независимая от платформы продукция/dev/null снижается для Явы

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

В случае, если чье-то удивление, 'для чего это?'

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

12
задан bmargulies 24 January 2010 в 17:44
поделиться

2 ответа

Вы можете использовать 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
    }
}
18
ответ дан 2 December 2019 в 07:02
поделиться

Сделать многопоточный сервер удивительно просто. Ознакомьтесь с этим примером.

class Server
{
    private Socket socket;
    private List<Socket> connections;
    private volatile Boolean endAccept;

    // glossing over some code.


    /// <summary></summary>
    public void Accept()
    {
        EventHandler<SocketAsyncEventArgs> completed = null;
        SocketAsyncEventArgs args = null;

        completed = new EventHandler<SocketAsyncEventArgs>((s, e) =>
        {
            if (e.SocketError != SocketError.Success)
            {
                // handle
            }
            else
            {
                connections.Add(e.AcceptSocket);
                ThreadPool.QueueUserWorkItem(AcceptNewClient, e.AcceptSocket);
            }

            e.AcceptSocket = null;
            if (endAccept)
            {
                args.Dispose();
            }
            else if (!socket.AcceptAsync(args))
            {
                completed(socket, args);
            }
        });

        args = new SocketAsyncEventArgs();
        args.Completed += completed;

        if (!socket.AcceptAsync(args))
        {
            completed(socket, args);
        }
    }

    public void AcceptNewClient(Object state)
    {
        var socket = (Socket)state;
        // proccess        
    }        
}
-121--3909846-

Я бы попытался передать требуемую информацию в качестве флэшвара. Не лучшее решение из коробки, которое я знаю, но оно сработает.

Flash: StartVars в AS3

-121--2948940-

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

output = new FileOutputStream("NUL");

Для обеспечения независимости платформы лучше использовать функцию «» StartOutputStream «» в IO Commons .

4
ответ дан 2 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: