|
RandomAccessFile怎么更新文本文件的一行?谢谢了!
因为我写一个程序,更新文件中的某一行。我截取这一行的前后两段first,last,再用新的内容newline代替这一行,最后write((first+newline+last).getBytes());
只要新内容比原来少,就会出错--原来的内容的文件结尾部分并没有消失。
目的是更新一个HTML文件。
RandomAccessFile rf;
String contentsFirst="";
String contentsLast="";
String modifiedLatestlist = null;
try{
rf = new RandomAccessFile(leftbar.html","rw");
byte[] text = new byte[(int)(rf.length())];
rf.readFully(text);
contents = new String(text);
rf.close();
int first = contents.indexOf("<ol id=\"latestlists\">");
int last = contents.indexOf("</ol>",first);
contentsFirst = contents.substring(0,first);
contentsLast = contents.substring(last,(int)contents.length());
modifiedLatestlist = "<ol id=\"latestlists\">\n";
modifiedLatestlist+="<li>动态内容,省去</li>\n";
rf = new RandomAccessFile(leftbar.html","rw");
rf.write((contentsFirst+modifiedLatestlist+contentsLast).getBytes());
rf.close();
}catch(Exception e){} |
|