我有一个写了很多SQL语句的文件,我先读出一部分SQL语句,执行正确完成后 我再在文件中删除这部分,怎么做? 用什么对象好?或者我先读取出来一部分SQL语句(文件中这部分没有了),没有执行成功,我再回写到文件中。

解决方案 »

  1.   

    用RandomAccessFile来读吧
    一行一行的地读,读了就执行,执行完了后,就把它删了,这个实现不复杂吧
      

  2.   

    考虑系统的性能,想多个SQL语句一起提交,成功了就在原文件删除这部分语句。
      

  3.   

    刚刚用java做程序,能不能给个例子 截取文件的一部分 失败的话回写,我用线程隔段时间截取。
      

  4.   

    从文件里面删除某一行,用java挺麻烦的。
      

  5.   

    http://community.csdn.net/Expert/TopicView3.asp?id=5195858
    分这里还有。
    给出去个其他方案也可以,就是对数据库操作的延后
      

  6.   

    既然要用到数据库 那干脆在库里建张表存放这些sql,操作肯定方便多了,如果不需要很高的性能的话。
      

  7.   

    把这些SQL语句存到数据库中,会方便一些的.或者你执行成功的话,
    就把执行成功的SQL保存到另外一个文件里去.原来的那个文件,你只要知道哪些成功了就可以了啊.
      

  8.   

    参考: 
     public static void main(String args[]) throws IOException {
            //Set<Serializable> values = new HashSet<Serializable>();
            ResultSet s=null;
            //s.next()
            try {
                RandomAccessFile ra=new RandomAccessFile(new File("d:/a.txt"), "rw");
                long l1=ra.getFilePointer();
                System.out.println(l1);
                String line=ra.readLine();
                int l2=line.length();
        System.out.println(line);
                System.out.println(l2);
                ra.seek(l1);
        String str="";
        for(int i=0;i<l2;i++){
    str=str+" ";
    System.out.println(i);
        }
                ra.writeBytes(str);
                ra.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }