用 RandomAccessFile 类, 先定位到需要的位置,再用 write(byte[] b, int off, int len) 方法.下面是这个方法在jdk中的说明 : (  Writes len bytes from the specified byte array starting at offset off to this file  )

解决方案 »

  1.   

    import java.io.*;
    import java.util.*;
    public class TestFileDelete{
    public static void main(String[] args){
    System.out.println(deleteLine("aaa.txt","aaaa"));
    }
    public static boolean deleteLine(String fileName,String deleteLine){
    File file=new File(fileName);
    if(!file.exists() || file.isDirectory()){
    return false;
    }
    ArrayList contends=new ArrayList();
    BufferedReader in=null;
    PrintWriter out=null;
    try{
    in=new BufferedReader(new FileReader(file));
    String line=null;
    while((line=in.readLine())!=null){
    if(!line.equals(deleteLine)){
    contends.add(line);
    }
    }
    in.close();
    out=new PrintWriter(new BufferedWriter(new FileWriter(file,false)));
    Iterator iter=contends.iterator();
    while(iter.hasNext()){
    out.println((String)iter.next());
    }
    out.flush();
    out.close();
    return true;
    }
    catch(Exception ex){
    return false;
    }
    finally{
    try{
    if(in!=null){
    in.close();
    in=null;
    }
    if(out!=null){
    out.close();
    out=null;
    }
    }
    catch(IOException ioe){
    }
    }
    }
    }