JAVA如何?讀取檔案最後一行記錄,在檔案的結尾追加記錄

來源:互聯網
上載者:User

1、讀取檔案最後一行,當然了,這個方法的速度會比下面那個方便的速度快

RandomAccessFile rf = null;<br />System.out.println(new Date().getTime());<br />try {<br />rf = new RandomAccessFile("d://you.log", "r");<br />long len = rf.length();<br />long start = rf.getFilePointer();<br />long nextend = start + len - 1;<br />String line = "";<br />rf.seek(nextend);<br />int c = -1;<br />int t = 0;<br />while (nextend > start) {<br />c = rf.read();<br />if (c == '/n' || c == '/r') {<br />line = rf.readLine();<br />t++;<br />if (t >= 1 && line != null) {<br />System.out.println(line);<br />return;<br />}<br />nextend--;<br />}<br />nextend--;<br />rf.seek(nextend);<br />if (nextend == 0) {// 當檔案指標退至檔案開始處,輸出第一行<br />System.out.println(rf.readLine());<br />}<br />}<br />} catch (FileNotFoundException e) {<br />e.printStackTrace();<br />} catch (IOException e) {<br />e.printStackTrace();<br />} finally {<br />System.out.println(new Date().getTime());<br />try {<br />if (rf != null)<br />rf.close();<br />} catch (IOException e) {<br />e.printStackTrace();<br />}<br />}

2、讀取檔案最後一行記錄

String string2= null;<br />try {<br />FileReader fr = new FileReader("d://you.log");<br />BufferedReader br = new BufferedReader(fr);<br />String str = null;<br />while ((str = br.readLine()) != null) {<br />string2= str;<br />}<br />br.close();<br />fr.close();<br />} catch (Exception e) {<br />e.printStackTrace();<br />}<br />System.out.println(string2);

3、在檔案的結尾追加記錄

try {<br />// 開啟一個寫檔案器,建構函式中的第二個參數true表示以追加形式寫檔案<br />FileWriter writer = new FileWriter("d://you.log", true);<br />writer.write("在最後一行寫入資料!" + ";"+"/r/n");<br />writer.close();<br />} catch (IOException e) {<br />e.printStackTrace();<br />}

4、在檔案的結尾追加記錄

try {<br />RandomAccessFile rf = new RandomAccessFile("d://you.log", "rw");<br />long count = rf.length();<br />System.out.println("在最後一行寫入資料!" );<br />rf.seek(count);</p><p>// 如要換行,用 /r/n 次序不要亂<br />rf.writeBytes("ABC /r/n"); //只是寫入字元的時候不會亂碼,如果需要寫入漢字,需要用下面這一行的方法</p><p>String strfile = new String("在最後一行寫入資料GFGFGF!".getBytes(),"ISO_8859-1");<br />rf.writeBytes(strfile+" /r/n");<br />rf.close();</p><p>} catch (Exception e) {<br />System.err.println("讀寫出錯");<br />}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.