Advertisement
Guest User

test2

a guest
Sep 20th, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package ee.ut.jf2014.homework1;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.io.RandomAccessFile;
  6.  
  7. import org.apache.commons.lang.ArrayUtils;
  8.  
  9. public class reader {
  10.    
  11.     private static int BufferSize = 8192;
  12.     private static RandomAccessFile raf;
  13.     private static int counterFromStart1;
  14.  
  15.     public static void main(String[] args) throws IOException {
  16.         String fileName = "test.xml";
  17.         File file = new File(fileName);
  18.         System.out.println(file.getAbsolutePath());
  19.         raf = new RandomAccessFile(file, "rw");
  20.        
  21.        
  22.         byte[] startBuffer = new byte[BufferSize];
  23.         byte[] endBuffer = new byte[BufferSize];
  24.         long bytesInFileLength = raf.length();
  25.        
  26.        
  27.         System.out.println("bytesInFile " + bytesInFileLength);
  28.         //Kui puhvrisuurus on suurem kui file, loe korraga sisse ja liigu algusesse, keera ümber
  29.         // ja kirjuta maha
  30.         if (bytesInFileLength <= BufferSize) {
  31.             startBuffer = new byte[(int) bytesInFileLength];
  32.             raf.seek(0);
  33.             raf.read(startBuffer);
  34.             raf.seek(0);
  35.             ArrayUtils.reverse(startBuffer);
  36.             raf.write(startBuffer);
  37.             System.out.println("Lyhike fail");
  38.             int test = 0;
  39.             // kui faili pikkuse sisse mahub mitu puhvrit
  40.         } else {
  41.             bytesInFileLength = bytesInFileLength - startBuffer.length;
  42.        
  43.         for (int counterFromStart = 0; counterFromStart < bytesInFileLength; counterFromStart = counterFromStart + startBuffer.length ) {
  44.        
  45.             raf.seek(counterFromStart); //Liigu faili algusesse ja loe puhvrisse
  46.             raf.read(startBuffer);
  47.             raf.seek(bytesInFileLength); //Liigu faili lõppu - puhvri suurus ja loe puhvrisse ja liigu sinna
  48.             raf.read(endBuffer);
  49.             raf.seek(bytesInFileLength);
  50.             ArrayUtils.reverse(startBuffer); //Keera ümber
  51.             ArrayUtils.reverse(endBuffer);         
  52.             raf.write(startBuffer); //Kirjuta algusest loetu lõppu
  53.             raf.seek(counterFromStart);
  54.             raf.write(endBuffer); //Kirjuta lõpust loetu algusesse
  55.             bytesInFileLength = bytesInFileLength - startBuffer.length; //Lahuta, et teaks kus koht nüüd lõpp on
  56.             counterFromStart1 = counterFromStart;
  57.             System.out.println("------------");
  58.         }
  59.        
  60.         //test, imo ma loen kuskil valesti ja midagi ma ei keera ümber
  61.         if (counterFromStart1 != bytesInFileLength) {
  62.             System.out.println(counterFromStart1);
  63.             System.out.println("viimane koht lugemata imo");
  64.         }
  65.         }
  66.         raf.close();   
  67.        
  68.        
  69.  
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement