J'ai 2 classes qui doivent lire un InputStream
, le premier devrait seulement interpréter la première ligne du flux MAIS la première ligne devrait être enlevée du flux de sorte que la classe B peut tout interpréter après la première ligne. Ce qui ne fonctionne pas quand je passe mon InputStream
à un BufferedReader
et fais un readLine()
.Lire la première ligne dans un flux et l'enlever du flux
Je sais que je pourrais faire une lecture sur le flux jusqu'à ce que j'ai rencontré un \ b mais peut-être une solution plus appropriée existe pour faire le travail?
// Reads the first line from the stream and everything else
public String retrieveFileNameFromTheFirstLineInInputStream(InputStream in) throws IOException {
InputStreamReader isReader = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(isReader);
return reader.readLine();
}
J'ai édité ma question, il y avait un défaut dans mon test d'unité mais en effet le lecteur lit tout. Quel est l'avantage d'utiliser un InputStreamReader iso le InputStream lui-même? –
Il me semble d'essayer ce code que même InputStreamReader peut tamponner l'entrée, donc passer le InputStream après qu'il ait été utilisé manquera tout ce que le premier InputStreamReader tamponné. – dfrankow