Просто для удобства чтения - это код, который вы разместили в комментарии (с дополнительным определением str)
DataInputStream inStream = null;
String str = null;
BufferedReader bufRd = new BufferedReader(new InputStreamReader(inStream));
while((str = bufRd.readLine()) != null){
System.out.println(str);
}
Да, это должно работать. Нет необходимости «очищать» или «сбрасывать» Stream или Streamreader. Все, что вы прочитали из читателя, «взято из него», вы не увидите его снова при следующем чтении.
Таким образом, если вы действительно видите, что элементы снова появляются в Reader (и вы не «настроили» сам ридер), то, скорее всего, ваш источник данных отправляет те же данные снова и снова. Проверьте в этой области.