Se mai a qualcuno potesse servire ho risolto nel seguente modo:

Ho copiato dentro lo StringWriter il contenuto del BufferedReader in ingresso:
public static StringWriter Getdata(String Indirizzo) {
String result="";
boolean check1 = false, check2 = false;
StringWriter mem= new StringWriter();
BufferedReader in=null;
PrintWriter copy = new PrintWriter(mem);

try {
URL url = new URL(Indirizzo);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);

in = new BufferedReader(
new InputStreamReader(
conn.getInputStream()));
String inputLine;

while ((inputLine = in.readLine()) != null) {
copy.println(inputLine);
}

in.close();
return mem;

} catch (MalformedURLException _error) {
System.out.println("URLException: " + _error.getMessage());
System.exit(1);

}

catch (IOException _error) {
System.out.println("IOException: " + _error.getMessage());
System.exit(1);
}

return null;


}
Dopo questo ho usato la risposta al metodo per ottenere una copia di un BufferedReader appena letto:
StringWriter buffer = new StringWriter();
buffer = GetResultFromWeb.Getdata(Hostname);

try {
Reader bufferread = new StringReader(buffer.toString());
BufferedReader nPbr = new BufferedReader(bufferread);
length = MyMethodReader(nPbr);
nPbr.close();
} catch (IOException _error) {
System.out.println("IOException: " + _error.getMessage());
System.exit(1);
}
In questo modo ho conservato lo stream che mi interessava dentro buffer e l'ho potuto rileggere quante volte ho voluto applicando il try catch che ho riportato quando serviva.

Ebolo.