forum

Home / DeveloperSection / Forums / How can I Read lines from Java FileInputStream without misplacing my place

How can I Read lines from Java FileInputStream without misplacing my place

Aaron Douglas 1927 28-Sep-2013

I have a FileInputStream. I would like to read character-oriented, line wise data from it, until I find a particular delimiter. Then I'd like to pass the FileInputStream, with the current position set immediately after the end of the delimiter line, to a library that needs an InputStream.

I can use a BufferedReader to walk through the file a line at a time, and everything works great. However, this leaves the underlying file stream in

BufferedReader br = new BufferedReader(new InputStreamReader(myFileStream))

at a non-deterministic position -- the BufferedReader had to look ahead, and I don't know how far, and AFAICT there's no way to tell the BufferedReader to rewind the underlying stream to just after the last-returned line.

Is this the best solution? It seems crazy to have aReaderInputStream(BufferedReader(InputStreamReader(FileInputStream))) but it's the only way I've seen to avoid rolling my own. I'd really like to avoid writing my own entire stream-that-reads-lines implementation if at all possible.


Updated on 28-Sep-2013

Can you answer this question?


Answer

1 Answers

Liked By