I have a LONG .txt file that contains almost 6000 lines! Sometimes I need to retrieve the info. in line 5000. Is it possible to start reading from line 5000 rather than starting from the beginning?
Thanks.
Whether 6000 lines are long or not depends on the average line length. Even with 100 characters per line, this is not really long.
Nevertheless, you can read from line 5000 if you know where line 5000 starts. Unfortunately, most of the time you'll have to read lines 1 through 4999 to find that out.
As 5000 lines is not so big, and it will do a sequential file access, this simple idea could work:
BufferedReader in = new BufferedReader(new InputStreamReader(fileName));
for (int i = 0; i < 5000 && in.ready; in.readLine()) { }
if (in.ready()) {
// you are at line 5000;
} else {
// the file is smaller than 5000 lines
}
Another idea is to use the bufferedRead.skip(n) method, but for it every line should have the same length. By example, each line having 100 characters, you will need to do:
int ls = System.getProperty("line.separator").length();
in.skip((100 + ls) * 5000);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With