Java с реестром Windows
Реестр Windows содержит логическое значение, DWords, строки, растровое изображение, Double, DateTime, растровое изображение Java не содержит. Подключение к:- DWords легко с longinteger и то же самое с Boolean. Java обрабатывает только действительные числа, когда числа DateTime и Double больше, чем действительные числа. Означает ли это, что вы не можете записывать дату и время на Java, а двойные числа сокращаются до реального. И валюта обрабатывается с реальным числом. Я думаю о преобразовании всего этого в Strings и использовании системы кодирования в именовании recourd, но это стоит обработки и дальнейших задержек. Другое дело с реестром windows, у него ленивая запись. Может ли Java сделать ленивую запись в реестр или нет. Это экономит время, не дожидаясь появления жесткого диска. Часто эти записи помещаются в реестр только для чтения между моей программой и java, чтобы выполнить многопоточное преобразование и выполнить это управление данными.
Кто-нибудь сделал что-нибудь подобное, пожалуйста, ява не очень хорошо это слышит.
1 ответ
Реестр Windows также содержит двоичные данные (например, byte[] в Java) - вы можете сериализовать любой объект Java (только с помощью ObjectOutputStream) и сохранить его в реестре, однако его будет сложно редактировать с помощью Regedit.
Все операции реестра Windows делегируются на advapi32.dll, независимо от того, какую библиотеку вы используете. Я не знаю, как сейчас с Windows 7, но несколько лет назад все операции реестра advapi были синхронными, поэтому вам нужно было дождаться результата. Если это не изменилось, все, что вы можете сделать, это применить метод производитель-потребитель. Поток "производителя" может записывать новые данные реестра в очередь, не дожидаясь, пока они действительно будут записаны в реестр, а затем потребитель считывает эти данные из очереди и выполняет фактическую запись.
Вы упомянули, что используете реестр для межпрограммного взаимодействия. Это довольно плохой и медленный способ, лучше использовать сокеты, они намного быстрее, и, более того, они могут быть асинхронными.