Запись объекта в файл не работает - PullRequest
0 голосов
/ 03 мая 2011

У меня есть следующий код:

public static void logMessage(Object msg) {
    if (outputStream != null) {
        try {
            outputStream.writeObject(msg);
            outputStream.flush();
        } catch (IOException e) {
            ErrorPopUp.setMessage( e.toString()).setVisible(true);
        }
    } else {
        if ((logDirectory != null) && (writeLogName != null)) {
            try {
                setWriteFileName(writeLogName);
                outputStream.writeObject(msg);
                outputStream.flush();
            } catch (IOException e) {
                ErrorPopUp.setMessage( e.toString()).setVisible(true);
            }
        } else {
            ErrorPopUp.setMessage("Log file name not set!").setVisible(true);
        }
    }
}

и

private static boolean setWriteFileName(String name)
throws IOException {
    writeLogName = name;

    if (logDirectory != null) {
        try {
            writeLogFile = new File(name);
            writeLogFile.createNewFile();
            outputStream = new ObjectOutputStream(
                    new BufferedOutputStream(
                    new FileOutputStream(
                    writeLogFile)));

            return true;
        } catch (IOException e) {
            throw e;
        }
    } else {
        ErrorPopUp.setMessage("Log directory name not set!").setVisible(true);
        return false;
    }
}

Используя это, Файл создается так, как я ожидаю, но в него ничего не записывается.
Я почти уверен, что это что-то очевидное, что я упускаю, потому что я долго смотрю на код;)
Я действительно буду признателен за некоторые советы.


EDIT:

public static void stopLogging() {
    try {
        if(outputStream != null){
            outputStream.close();
        }
    } catch (IOException e) {
        ErrorPopUp.setMessage(e.toString()).setVisible(true);
    }

    if(writeLogFile != null){
        writeLogFile.setReadOnly();
    }
    outputStream = null;
}

1 Ответ

1 голос
/ 03 мая 2011

Это (статичная) ЛОВУШКА!Бьюсь об заклад, ObjectOutputStream outputStream тоже статично!

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