После нажатия кнопки в моем приложении она создает новую нормальную тему и начинает загрузку большого изображения и сохранение его в файл. Все идет хорошо, но когда я нажимаю кнопку несколько раз, это происходит без ошибок, и когда я пытаюсь просмотреть эти изображения, они прослушиваются, как они перезаписывают себя.Java сохраняет большие изображения в потоках - IP-камера сломанные изображения
Я не знаю, как его отладить.
localPath = today + "/" + productCode + "/" + this.placeId; //Unique
/* ... */
private void productSave(String productCode, int whichCamera, boolean isError) {
for (int i = position; i < lastCamera; i++) {
Date dateSave = new Date();
path = localPath + "/" + dateFormat.format(dateSave) + "_" + (i + 1) + ".jpg";
try {
BufferedImage imageOld = ImageIO.read(new URL(this.camerasUrlsToSave[i]));
ImageIO.write(imageOld, "jpg", new File(rootPath + "/" + path));
ComDb.getInstance().saveProduct(productCode, this.placeId, path, dateSave);
} catch (IOException ex) {
result = false;
}
}
}
EDIT: путь на 100% уникален (разные папки с кодом продукта). И это не проблема с изображением с камеры - я могу открыть 10 карт, я не вижу ошибок изображения
EDIT2: Может это что-то вроде загрузки Img bufor? Потому что все изображения загружаются с одного и того же IP-адреса. Или, может быть, проблема с утечками памяти bufferedimg. Нужна идея, как его восстановить.
EDIT3: Я обнаружил, что если я открою 5 карт в веб-браузере с адресом моей камеры, например: blah.blah.some.ip/GetImage.cgi? CH = 0 Они загружаются один за другим, не все в один раз. Но, я не вижу загруженные изображения, когда загрузка заканчивается.
EDIT4: Я попытался воспроизвести эту ошибку в веб-браузере, если я попытаюсь открыть ссылку в ff и в IE. IE печатает «getImage busy». Когда я пытаюсь ff и хром, у меня сломаны изображения. Поэтому мне нужно сделать что-то вроде очереди или отключить кнопку ...
EDIT5: Мое временное решение: синхронизированная функция productSave. Изображения из второго щелчка будут сохранены несколько секунд спустя.
http://oi57.tinypic.com/ofrrn.jpg!
, где переменный я прихожу? это полный код? – tgkprog
Возможный дубликат [Threads and file writing] (http://stackoverflow.com/questions/9972549/threads-and-file-writing) – BCartolo
@BCartolo У каждого изображения есть свой файл. –