<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # RandomAccessFile > ## 基本操作 - 創建對象 ``` /** * file 為io.File類型 * mode 為模式為String類型,選擇模式,可選'r','w','rw'等模式對應‘讀’,‘寫’,‘讀寫’權限, * **/ new RandomAccessFile(file, mode) ``` - 查看長度(字節) ``` RandomAccessFile對象.length(); // 顯示RandomAccessFile對象文本的字節長度 ``` - 查看當前指針位置(字節) ``` RandomAccessFile對象.getFilePointer(); // 顯示當前指針指向文本字節位置 ``` - 設置指針位置(字節) ``` RandomAccessFile對象.seek(Long point) // 設置指針為long類型,指向文本具體字節數據 ``` - 字符流讀寫 ``` RandomAccessFile對象.readChar(); RandomAccessFile對象.writeChars(s); // s為String類型的寫入內容 ``` - 字節流讀寫 ``` RandomAccessFile對象.read(obj,begin,end); // obj為byte數組對象,begin為開始位置,end為結束位置 RandomAccessFile對象.write(b); // b 為byte類型的寫入內容 ``` * [ ] 注意 write() 方法 該方法會從指定位置開始覆蓋寫入內容,并保持覆蓋前后文件大小一致, 例如 ABCD 從2的位置寫入 FF后結果為 AFFD; > ## 應用 - 向指定文件追加內容(在文件末尾追加) ``` /* * RandomAccessFile 向指定文件追加內容(在文件末尾追加) */ public void appendTest(String url) { File file = new File(url); String permision = "rw"; try { if (!file.exists()) { File parentFile = file.getParentFile(); if (parentFile.mkdirs()) { file.createNewFile(); } } RandomAccessFile raf = new RandomAccessFile(file, permision); raf.seek(raf.length()); System.out.println("raf.length:" + raf.length()); System.out.println("raf.getFilePointer:" + raf.getFilePointer()); String value = "這是追加內容!" + "\r\n"; raf.write(value.getBytes("utf-8")); } catch (Exception e) { e.printStackTrace(); } } ``` - 從指定位置讀取內容 ``` /* * RandomAccessFile 從指定位置讀取內容 */ public void readTest(String url) { File file = new File(url); try { RandomAccessFile raf = new RandomAccessFile(file, "r"); raf.seek(20);// 設置指針位置 byte[] temp = new byte[1024]; int read = -1; while ((read = raf.read(temp)) != -1) { System.out.println(new String(temp, 0, read)); } raf.close(); } catch (Exception e) { e.printStackTrace(); } } ``` - 從指定位置插入指定的內容 ``` /* * RandomAccessFile 從指定位置插入指定的內容 注意: raf.write() * 該方法會從指定位置開始覆蓋寫入內容,并保持覆蓋前后文件大小一致, 例如 ABCD 從2的位置寫入 FF后結果為 AFFD; * 特別注意的是2是字節大小,所以當有中文字體被覆蓋時,可能使字體遭到破壞 * * 因此要從指定位置插入指定的內容辦法解決辦法是: * 1 先把指定位置后邊的內容寫入到一個臨時文件中; * 2 然后在指定位置插入指定內容; * 3 最后寫入臨時數據; */ public void insertTest(String url) { try { File file = new File(url); File tempFile = File.createTempFile("tmp", null); //創建臨時文件 FileInputStream fileInputStream = new FileInputStream(tempFile); FileOutputStream fileOutputStream = new FileOutputStream(tempFile); RandomAccessFile raf = new RandomAccessFile(file, "rw"); raf.seek(20); byte []buf = new byte[1024]; int read = -1; while((read = raf.read(buf)) != -1) { //要插入的內容的地方后面內容寫入臨時文件 fileOutputStream.write(buf, 0, read); } raf.seek(20); //指針重新指到要插入的地方 String value = "插入de內容!!"+"\r\n"; raf.write(value.getBytes("UTF-8")); //插入內容 while((read = fileInputStream.read(buf)) != -1) { //插入臨時文件數據 raf.write(buf,0,read); } fileOutputStream.close(); fileInputStream.close(); raf.close(); } catch (Exception e) { e.printStackTrace(); } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看