1、读取文件最后一行,当然了,这个方法的速度会比下面那个方便的速度快 RandomAccessFile rf = null; System.out.println(new Date().getTime()); try { rf = new RandomAccessFile("d://you.log", "r"); long len = rf.length(); long start = rf.getFilePointer(); long nextend = start + len - 1; String line = ""; rf.seek(nextend); int c = -1; int t = 0; while (nextend > start) { c = rf.read(); if (c == '/n' || c == '/r') { line = rf.readLine(); t++; if (t >= 1 && line != null) { System.out.println(line); return; } nextend--; } nextend--; rf.seek(nextend); if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行 System.out.println(rf.readLine()); } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { System.out.println(new Date().getTime()); try { if (rf != null) rf.close(); } catch (IOException e) { e.printStackTrace(); } } 2、读取文件最后一行记录 String string2= null; try { FileReader fr = new FileReader("d://you.log"); BufferedReader br = new BufferedReader(fr); String str = null; while ((str = br.readLine()) != null) { string2= str; } br.close(); fr.close(); } catch (Exception e) { e.printStackTrace(); } System.out.println(string2); 3、在文件的结尾追加记录 try { // 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 FileWriter writer = new FileWriter("d://you.log", true); writer.write("在最后一行写入数据!" + ";"+"/r/n"); writer.close(); } catch (IOException e) { e.printStackTrace(); } 4、在文件的结尾追加记录 try { RandomAccessFile rf = new RandomAccessFile("d://you.log", "rw"); long count = rf.length(); System.out.println("在最后一行写入数据!" ); rf.seek(count); // 如要换行,用 /r/n 次序不要乱 rf.writeBytes("ABC /r/n"); //只是写入字符的时候不会乱码,如果需要写入汉字,需要用下面这一行的方法 String strfile = new String("在最后一行写入数据GFGFGF!".getBytes(),"ISO_8859-1"); rf.writeBytes(strfile+" /r/n"); rf.close(); } catch (Exception e) { System.err.println("读写出错"); }