简单说,下面是一段JAVA源文件中的内容://a
public void getA(){
}
//b
public void getB(){
}我想用一个输出流,可以在"//a"处写入,也可以跳到"//b"处写入。
目的是想在原有的代码文件的标记处追加新的代码,并保留标记,方便下次继续追加代码。
有这样的流么?或者什么解决方案,大家能提供一下么?

解决方案 »

  1.   

    感觉需求有点像是GOTO 不过Java里面GOTO没用
      

  2.   

    给你个建议 研究一下JPA ,JAVA Annotation 应该能解决你想要的结果
      

  3.   

    可能JAVA里没有这样的流,因为JAVA没有指针,估计C/C++中有能实现这个功能的流
      

  4.   

    提供一种解决方案:
    先用输入流,从源文件中读取代码,将读取的代码添加到一个StringBuilder中,当读到标记处,例如"//a"时,将现在需要追加的代码+标记"//a"添加到StringBuilder中,然后读取剩余的代码。最后将StringBuilder中的内容输出到该文件(对原有文件进行覆盖)
    不知道可以不
      

  5.   

    只能是自己用流读入,再分析,然后写入了
    File f = new File("F:/T.java");

    if( f.exists() ){

    FileInputStream  inStream = new FileInputStream (f);
    InputStreamReader inReader = new InputStreamReader(inStream);
    BufferedReader bufferedReader = new BufferedReader(inReader); 
    int start = 0;
    StringBuffer strBuf = null;
    char[] chars = null;
    String writerStr = "描述";
    String findStr = "//a";
    try{
    strBuf = new StringBuffer();
    for( String str = null ; (str = bufferedReader.readLine()) != null ; ){
    strBuf.append(str + "\n");
    }

    start = strBuf.indexOf(findStr);
    strBuf.insert(start + findStr.length(), writerStr);
    }catch( Exception e ){
    e.printStackTrace();
    }finally{
    inReader.close();
    } if( start > 0) {
    FileOutputStream outStream = new FileOutputStream(f);
    OutputStreamWriter outWriter = new OutputStreamWriter(outStream);
    try{
    ;
    outWriter.write(strBuf.toString());
    }catch( Exception e ){
    e.printStackTrace();
    }finally{
    outWriter.close();
    }
    }
    }