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.
vrijdag 7 mei 2010
Write a file in reversed order.
Abonneren op:
Reacties posten (Atom)
Geen opmerkingen:
Een reactie posten