就是读取某个文件,然后加上行数,再写回原文件中——原文件:
ajfdpafji
ajfejw
nwoer运行后:
1  ajfdpafji
2  ajfejw
3  nwoer我的想法:我是用个很笨的方法,就是先把处理好的文件备份到一个临时文件,然后再写入原文件覆盖原来的,同时再删除临时文件。问题:1.有没有其他的更好的方法。
      2.我的方法中为什么delete()删除失败啊?百思不得其解啊——代码:
public class AddRowNum {
public static void main(String[] args) {

try {

BufferedReader br = new BufferedReader(new FileReader("D:/Hello.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("D:/temp.txt"));

int RowNum = 0;
String s = null;
while ((s = br.readLine()) != null) {
bw.write(((++RowNum) + "  " + s));
bw.newLine();
}
bw.flush();

br = new BufferedReader(new FileReader("D:/temp.txt"));
bw = new BufferedWriter(new FileWriter("D:/Hello.txt"));
s = null;
while ((s = br.readLine()) != null) {
bw.write(s);
bw.newLine();
};
bw.flush();
br.close();
bw.close();

} catch(FileNotFoundException e) {
System.out.println("找不到指定文件");
} catch(IOException e) {
System.out.println("文件读取错误");
}

(new File("D:/temp.txt")).delete();

}
}

解决方案 »

  1.   

    貌似我没听懂你要处理什么问题哦 
    不过你的这个 好像没贴出来delete()代码吧  不贴出来怎么知道那里出错了呢
      

  2.   

    1.其他方法:
         处理存内存,用HashMap吧,Integer 做key 行内容做 value,最后遍历写出,从1到map.size()2.第一次
    bw.flush()之后,应该把两个流close了,然后br和bw再赋予新的

    while ((s = br.readLine()) != null) {
                    bw.write(((++RowNum) + "  " + s));
                    bw.newLine();
                }
                bw.flush();
    补上:
                           br.close();
                bw.close();否则虽然你br,bw赋予了新的,但是原来两个流还开着....经试验加上这个能搞定
      

  3.   


    try {
                 BufferedReader br = new BufferedReader(new FileReader("D:/Hello.txt"));
                BufferedWriter bw = new BufferedWriter(new FileWriter("D:/temp.txt"));
                
                int RowNum = 0;
                String s = null;
                while ((s = br.readLine()) != null) {
                    bw.write(((++RowNum) + "  " + s));
                    bw.newLine();
                }
                bw.flush();
    br.close();
                bw.close();
                
                br = new BufferedReader(new FileReader("D:/temp.txt"));
                bw = new BufferedWriter(new FileWriter("D:/Hello.txt"));
                s = null;
                while ((s = br.readLine()) != null) {
                    bw.write(s);
                    bw.newLine();
                };
                bw.flush();
                br.close();
                bw.close();
                

            } catch(FileNotFoundException e) {
                System.out.println("找不到指定文件");
            } catch(IOException e) {
                System.out.println("文件读取错误");
            }

    try{
    System.out.println("Here");
    if((new File("D:/temp.txt")).delete())
    System.out.println("success");
    else
    System.out.println("fail");
    }catch(SecurityException e){System.out.println("无法删除");}