Ciao!
Sto scrivendo una app per Android, in particolare un cache manager. Semplicemente, queste sono le operazioni che faccio:

1) Scarico una immagine da internet in un InputStream.
2) Uso l'InputStream per salvare su cache il file, e funziona perfettamente:
codice:
	try {
		os = new FileOutputStream(file);
		byte[] data;
		data = new byte[is.available()];
		is.read(data);
		os.write(data);
		is.close();
		os.close();
	} catch (FileNotFoundException e1) {
		e1.printStackTrace();
		return null;
	} catch (IOException e2) {
		e2.printStackTrace();
		return null;
	}
3) L'InputStream mi serve di nuovo (devo passarlo ad un'altra funzione per ottenere un'altra cosa), ma è stato ormai svuotato (il debugger mi fa leggere il valore is.bytesRemaining = 0).

Come faccio, al punto 2), a clonare l'InputStream, in modo tale da preservare quello originale (is)?

Spero mi possiate aiutare. Grazie!