将您的代码更改为:
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class EditFile { public static void main(String[] args) { try{ String verify, putData; File file = new File("file.txt"); file.createNewFile(); FileWriter fw = new FileWriter(file); BufferedWriter bw = new BufferedWriter(fw); bw.write("Some text here for a reason"); bw.flush(); bw.close(); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); while( (verify=br.readLine()) != null ){ //***editted //**deleted**verify = br.readLine();** if(verify != null){ //***edited putData = verify.replaceAll("here", "there"); bw.write(putData); } } br.close(); }catch(IOException e){ e.printStackTrace(); } }}
问题是您要调用
br.readLine()两次,这会导致应用程序先读取第1行,然后读取第2行,在您的情况下,您只有一行,这意味着您的程序以条件形式读取了它,并且在将其声明为变量时
verify,它正在停止,因为您没有更多数据可读取文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)