Сериализация Java, ObjectInputStream.readObject (), проверяет, заблокируется ли

Вы имеете в виду конфликт слияния на фиксации/обновлении или переходите слияние?

Книга SVN довольно соглашается с svn:ignore свойством в особенности:

Подрывная деятельность не предполагает, что каждый файл или подкаталог в рабочем каталоге копии предназначаются для управления версиями. Ресурсы должны быть явно помещены под управлением Подрывной деятельности с помощью svn, добавляют или команды импорта svn.

...

, Чтобы вынудить каждого пользователя того репозитория добавить шаблоны для тех ресурсов к их областям конфигурации во время выполнения был бы не только нагрузка, но и имеет потенциал для столкновения с потребностями конфигурации других рабочих копий, которые проверил пользователь.

5
задан Mike 1 October 2009 в 00:46
поделиться

3 ответа

Нет. Хотя вы можете использовать ObjectInputStream в другом потоке и проверить, есть ли у него доступный объект. Как правило, опрос - не лучшая идея, особенно с плохой гарантией InputStream.available .

7
ответ дан 13 December 2019 в 19:30
поделиться

API сериализации Java не был разработан для поддержки функции available () . Если вы реализуете свои собственные функции чтения / записи объектов, вы можете читать любой объем данных из потока, который вам нравится, и нет метода отчетности.

Итак, readObject () не знает, сколько данных он будет читать, поэтому он не знает, сколько объектов доступно.

Как было предложено в другом сообщении, лучше всего переместить чтение в отдельный поток.

4
ответ дан 13 December 2019 в 19:30
поделиться

У меня есть идея, что, добавив еще один InputStream в цепочку, можно сделать информацию о доступности читаемой клиентом:

HACK!

InputStream is = ... // where we actually read the data
BufferedInputStream bis = new BufferedInputStream(is);
ObjectInputStream ois = new ObjectInputStream(bis);

if( bis.available() > N ) {
  Object o = ois.readObject();
}

Сложность - это значение N Он должен быть достаточно большим, чтобы охватить как заголовок сериализации, так и данные объекта. Если они сильно различаются, не повезло.

0
ответ дан 13 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

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