Здравствуйте, Джуниано, отвечая на ваш второй вопрос, да, вы можете использовать цикл while, но вам нужно еще 2 вещи.
URL url = new URL(this.fileURL);
URLConnection connection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
InputStream in = httpConnection.getInputStream();
BufferedInputStream myBis = new BufferedInputStream(in);
1) создать ByteArrayBuffer для хранения вашего InputStream
ByteArrayBuffer myBABuffer = new ByteArrayBuffer(50);
int current = 0;
while ((current = myBis.read()) != -1) {
myBABuffer.append((byte) current);
}
FileOutputStream fos = new FileOutputStream(imgFile);
2) создать изображение с сохраненными байтами.
fos.write(myBABuffer.toByteArray());
fos.flush();
fos.close();
in.close();
Jorgesys