比如说有这样一个TXT文件:
111
222
333
444
666
777
888
现在我要修改:第5行,即“666”前, 插入一行“555”,其它的数据不变,即结果为:
111
222
333
444
555
666
777
888
不知道有什么好的解决方法,多多指教!

解决方案 »

  1.   

    public void insertLineInFile(String fileName, String tFileName, int n, String insertStr) throws IOException{
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    new FileInputStream(fileName)));
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream(tFileName)));
            String line = reader.readLine();
            int num = 0;
            while (line != null) {
             writer.write(line);
         writer.write(0x0d);
         writer.write(0x0a);
             if( n == ++num){
                 writer.write(insertStr);
             writer.write(0x0d);
             writer.write(0x0a);
             }
                line = reader.readLine();
            }
            reader.close();
    }
      

  2.   

    reader.close();
    后加入:
    writer.close();
      

  3.   

    import java.io.*;/**
     * @author Administrator
     *
     * 更改所生成类型注释的模板为
     * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
     */
    public class InsertLine { public static void main(String[] args) {
    File f = new File(args[0]);
    try{
    LineNumberReader lnr = new LineNumberReader(new FileReader(f));
    FileWriter fw = new FileWriter(new File("aaa.txt"));

    int k = 0;
    while(true){

    String str = lnr.readLine();
    System.out.println(str);
    if(k == 4){
    fw.write("555");
    fw.write("\t");
    fw.flush();
    }else{
    fw.write(str);
    fw.write("\t");
    fw.flush();
    }

    k++;
    }
    }catch(Exception e){

    }
    }
    }