氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          Java之RandomAccessFile小結

          今天跟大家分享一下javase中的關于I/O的操作:
          有時我們需要在文件的末尾追加一些內容,在這時用RandomAccessFile就很好。
          這個類有兩個構造方法:

          RandomAccessFile(File file, String mode) 
                    創(chuàng)建從中讀取和向其中寫入(可選)的隨機訪問文件流,該文件由 File 參數(shù)指定。
          RandomAccessFile(String name, String mode) 
                    創(chuàng)建從中讀取和向其中寫入(可選)的隨機訪問文件流,該文件具有指定名稱。

          其中mode 參數(shù)指定用以打開文件的訪問模式。允許的值及其含意為:
          "r" 以只讀方式打開。調用結果對象的任何 write 方法都將導致拋出 IOException。
          "rw" 打開以便讀取和寫入。如果該文件尚不存在,則嘗試創(chuàng)建該文件。
          "rws" 打開以便讀取和寫入,對于 "rw",還要求對文件的內容或元數(shù)據的每個更新都同步寫入到底層存儲設備。
          "rwd"   打開以便讀取和寫入,對于 "rw",還要求對文件內容的每個更新都同步寫入到底層存儲設備。
          "rws" 和 "rwd" 模式的工作方式極其類似 FileChannel 類的 force(boolean) 方法,分別傳遞 true 和 false 參數(shù),除非它們始終應用于每個 I/O 操作,并因此通常更為高效。如果該文件位于本地存儲設備上,那么當返回此類的一個方法的調用時,可以保證由該調用對此文件所做的所有更改均被寫入該設備。這對確保在系統(tǒng)崩潰時不會丟失重要信息特別有用。如果該文件不在本地設備上,則無法提供這樣的保證。
          "rwd" 模式可用于減少執(zhí)行的 I/O 操作數(shù)量。使用 "rwd" 僅要求更新要寫入存儲的文件的內容;使用 "rws" 要求更新要寫入的文件內容及其元數(shù)據,這通常要求至少一個以上的低級別 I/O 操作。


          如果存在安全管理器,則使用 file 參數(shù)的路徑名作為其參數(shù)調用它的 checkRead 方法,以查看是否允許對該文件進行讀取訪問。如果該模式允許寫入,那么還使用該路徑參數(shù)調用該安全管理器的 checkWrite 方法,以查看是否允許對該文件進行寫入訪問。

          如果要在文件的結束點追加內容,那就用第一個構造方法,調用RandomAccessFile的seek(long lg)方法,該方法傳遞進去一個long型的數(shù)據,我們正好可以把file.length()傳遞進去,這樣就按照要求在文件末尾追加內容。

          但這里可能會遇到了亂碼問題,如果用的RandomAccessFile的writeBytes(String s)方法寫入內容,就會出現(xiàn)亂碼,所以最好是用write(byte[] b)方法,例如:String s = "中文"; raf.write(s.getBytes());這樣就很好的解決了亂碼問題。關于這兩種方法,許多人認為好像差不多,其實是完全相反的方式,writeBytes(String s)方法將中文拆成兩個字節(jié)寫進文本,所以會造成亂碼,write(byte[] b)方法是將每兩個字節(jié)合成一個中文并寫時文本,所以不會出現(xiàn)亂碼。
          我們還可以調用writeUTF(String str)方法避免亂碼。
          結下來還有一個解決換行的問題,寫了“/n”不管用啊。實際上要用“/r/n”才行。
          “/r”即回車,回到一行的開頭。“/n”即換行,另起一行。這大家都是知道的。
          我們在程序里寫文件的時候所謂的“回車符”確切的說應該是“回車換行符”。
          在windows系統(tǒng)下,回車換行符號是“/r/n”,但是在Linux等系統(tǒng)下是沒有“/r”符號的,我們一般都是在window下,所以說在用程序寫文件是應該是“/r/n”才對。
          補充:為了適應跨平臺需求,建議回車換行用System.getProperty("line.separator")。
           

          posted on 2012-10-04 16:58 你爸是李剛 閱讀(173) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          <2012年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業(yè)網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 霸州市| 宁化县| 曲阜市| 余庆县| 泗水县| 惠水县| 泰顺县| 邯郸县| 孟州市| 广州市| 瓮安县| 牟定县| 共和县| 奇台县| 沙雅县| 苍溪县| 马龙县| 潜江市| 区。| 浦县| 奉新县| 余干县| 永新县| 巴林左旗| 朔州市| 历史| 茂名市| 禹州市| 任丘市| 蒲江县| 上杭县| 宣威市| 垣曲县| 峡江县| 资阳市| 昂仁县| 寻甸| 赤城县| 青州市| 永城市| 郧西县|