2014-05-09 5 views
1

Я хотел сохранить изображение на машине пользователя, когда он запускает мое приложение Java. для этого я написал код следующим образом:Как сохранить изображение с помощью ImageIO.write() в Linux?

BufferedImage image = null; 
     try { 

      URL url = new URL(logourl); 
      image = ImageIO.read(url); 

      ImageIO.write(image, "png",new File("/usr/swa.png")); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

Но это дает мне

java.io.FileNotFoundException: /usr/swa.png (Permission denied) 

но если я использовал

ImageIO.write(image, "png",new File("/home/MyUserName/Desktop/applicationName/logo.png")); 

Тогда сохранения изображения. Я не понимаю, почему он не обращается к этому пути, если он работает на /home/MyUserName/Desktop/applicationName/logo.png этот путь.

В основном, когда пользователь устанавливает приложение, я хочу получить изображение из веб-url и сохранить его на локальном компьютере пользователя, так что мне нужно для этого?

EDIT: Исключение исправило

+3

'/ temp/applicationName/logo.png'? Вы имели в виду '/ tmp/applicationName/logo.png'? Кроме того, вы уверены, что этот каталог существует? – BackSlash

+0

Учитывая сообщение об ошибке, я бы за «/ temp/applicationName не существует» - и в Linux это должно быть «/ tmp» – fge

+0

да, этот каталог exsits ni пробовал как «/ usr/local /» также, но это дает мне такое же исключение. –

ответ

3

У вас нет разрешения на запись в /usr, или, менее вероятно, файл /usr/swa.png уже существует и не файл удаляемые или доступные для записи.