Я хочу прочитать файл по строкам. BufferedReader намного быстрее, чем RandomAccessFile или BufferedInputStream. Но проблема в том, что я не знаю, сколько байтов я прочитал. Как узнать прочитанные байты (смещение)? Я пробовал.Как узнать байты чтения (смещения) BufferedReader?
String buffer;
int offset = 0;
while ((buffer = br.readLine()) != null)
offset += buffer.getBytes().length + 1; // 1 is for line separator
Я работаю, если файл невелик. Но, когда файл становится большим, смещение становится меньше фактического значения. Как я могу получить смещение?
Какую большую задачу вы пытаетесь достичь? Это принципиально сложно из-за внутреннего буфера (и кодирования, и разных строк). –
Я хочу получить смещения начала линий. Итак, я использую эти смещения, чтобы позже прочитать часть файла, используя RandomAccessFile. – user1301568
Вы считаете, что существует только один разделитель строк, например. \ П. Можете ли вы предположить это? – EJP