2010-10-15 46 views
0

我必须检查一个文本文件是否存在或不存在,然后我必须替换一个字母,说一个到o。我已经完成了第一部分如何更换炭文件java替换字符

class FDExists{ 
    public static void main(String args[]){ 
    File file=new File("trial.java"); 
    boolean exists = file.exists(); 
    if (!exists) { 

     System.out.println("the file or directory you are searching does not exist : " + exists); 

    }else{ 

     System.out.println("the file or directory you are searching does exist : " + exists); 
    } 
    } 
} 

这个我已经做

+0

是否想用'o'替换'a'到文件中?或在文件名? – 2010-10-15 09:31:28

+0

里面的文件。我的意思是在数据中 – Sumithra 2010-10-15 09:34:30

回答

2

你不能这样做,在一行代码。

您必须阅读文件(使用InputStream),修改内容并将其写入文件(使用OutputStream)。

示例代码。为了更好地理解算法,我省略了try/catch/finally块,但是在真实代码中,您必须添加具有正确资源释放的块。您也可以用系统行分隔符替换“\ n”,并用参数替换“a”和“o”。

public void replaceInFile(File file) throws IOException { 

    File tempFile = File.createTempFile("buffer", ".tmp"); 
    FileWriter fw = new FileWriter(tempFile); 

    Reader fr = new FileReader(file); 
    BufferedReader br = new BufferedReader(fr); 

    while(br.ready()) { 
     fw.write(br.readLine().replaceAll("a", "o") + "\n"); 
    } 

    fw.close(); 
    br.close(); 
    fr.close(); 

    // Finally replace the original file. 
    tempFile.renameTo(file); 
}