import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.util.Vector;
public class MaxFileReversed {
// writes a file with reversed lines
public void write(String fileNaam, PrintWriter
writer) {
RandomAccessFile raf;
try {
raf = new
RandomAccessFile(fileNaam, "r");
Vector<Long> linePointers = new Vector<Long>();
a_BuildLinePointersVector(raf, linePointers, fileNaam);
b_WriteFile(linePointers, raf, writer);
} catch (FileNotFoundException e){
e.printStackTrace();
}
}
private void
a_BuildLinePointersVector(RandomAccessFile raf, Vector<Long>
linePointers, String fileNaam) {
linePointers.add(0L);
do {
try {
if (raf.readLine() != null) { // End Of File reached?
linePointers.add(raf.getFilePointer());
} else {
return;
}
} catch
(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} while (true);
}
private void b_WriteFile(Vector<Long>
linePointers, RandomAccessFile raf, PrintWriter writer) {
// ignore the last pointer in the
Vector, that points 2 End Of File
int nLines = linePointers.size()
- 2;
for (int i = nLines; i > -1;
i--) {
try {
Long linePointer = linePointers.get(i);
raf.seek(linePointer);
writer.println(raf.readLine());
} catch
(IOException e) {
e.printStackTrace();
}
}
}
}
I like to write software. My favorite language is Java. For me this is the place to share and talk about my code.
Posts tonen met het label RandomAccessFile. Alle posts tonen
Posts tonen met het label RandomAccessFile. Alle posts tonen
vrijdag 7 mei 2010
Write a file in reversed order.
Abonneren op:
Posts (Atom)