1. 程式人生 > >RandomAccessFile實現倒序輸出檔案的內容

RandomAccessFile實現倒序輸出檔案的內容

因為之前碰到了一道題目:

 編寫一個Java應用程式,利用RandomAccessFile類,把幾個int型整數(1,2,3,4,5,6,7,8,9,10)寫入到一個名字為tom.dat檔案中,然後按相反順序讀出這些資料並顯示在螢幕上。(注意,一個int型資料佔4個位元組)

       題目要求對檔案進行倒序輸出,最開始自己的想法是利用RandomAccessFile對檔案進行寫入操作,接著再開始利用讀操作將讀到的資料存放到陣列中,最後進行反向遍歷輸出.寫完後,覺得不大對頭,因為題目中注意的條件沒有用到!

       於是看到網上的一段程式碼:

 public static void main(String[] args) {
         try {
             File file=new File("tom.dat");
                  RandomAccessFile raFile=new RandomAccessFile(file, "rw");
                         for(int i=1;i<=10;i++)
                         raFile.writeInt(i);
             //設定檔案指標位置,每讀出一個就將指標進行前移
              for(int i=40-4;i>=0;i-=4)
              {
                   raFile.seek(i);
                   int a=raFile.readInt();
                   System.out.println(a);
              }
               } catch (Exception e) {
         }}

          因為一個int是4個位元組,所以在這裡先將指標移到第九位,也就是第36位上,接著進行輸出,每次輸出一個,就讓指標向前移動四個位置,這種方法很好的解決了問題.

          另外就是發現了一個易錯點,在利用Randomaccessfile進行讀寫操作時,如果是從首位置開讀,那麼一定要注意在寫入操作完畢時,將檔案指標置為0再進行讀操作!