Удалить первую строку из файла с разделителями - PullRequest
1 голос
/ 15 июля 2011

У меня есть файл с разделителями, который может содержать около миллионов записей, теперь я хочу удалить первую строку из файла с разделителями перед дальнейшей обработкой.

Длина первой строки является переменной, она различается в зависимости от типа файла. Теперь я произвел чтение файлов FileChannel и RandomAccessFile, которые были предложены как лучший способ удаления первой строки.

Но я не могу понять, как получить длину первой строки и удалить ее.

Ответы [ 4 ]

4 голосов
/ 15 июля 2011

Не удаляйте его, просто читайте и игнорируйте .

Если вам нужно подготовить файл, поскольку блоки обработки файлов не могут обработать файл с неправильной первой строкой, вам придется прочитать и переписать его. Нет доступных операций ввода-вывода, которые могут удалить содержимое из файла в файловой системе .

3 голосов
/ 15 июля 2011

используйте readLine() для чтения построчно, просто пропустите первую строку и учитывайте другие при обработке

2 голосов
/ 18 июля 2011

Спасибо за вклад.В зависимости от того же, я нашел решение для удаления первой строки из файла с разделителями.

Упомянутый ниже фрагмент кода

RandomAccessFile raf = new RandomAccessFile("path to ur delimited file", "rw");
FileChannel fileChannel = raf.getChannel(); 
raf.readLine();     
raf.seek(raf.getFilePointer());         
int len = (int) (raf.length() - raf.getFilePointer());
byte[] bytearr = new byte[len];         
raf.readFully(bytearr, 0, len);         
fileChannel.truncate(0);            
raf.write(bytearr,0,len);
0 голосов
/ 15 июля 2011

Вы можете использовать BufferedReader и BufferedReader.readLine(), чтобы «удалить» первую строку перед обработкой.Отсюда вы можете продолжить обработку остальных строк или сохранить их в файл для последующей обработки.Последний вариант может быть не самым эффективным, доступным для вас.

...