我有一个包含以下内容的文本文件:
public class MyC{
public void MyMethod()
{
System.out.println("My method has been accessed");
System.out.println("hi");
}
}
我有一个数组 num[]= {2,3,4}; 其中包含要完全替换为此数组中的字符串的行号
字符串[] 值 = 新字符串[] {"AB","BC","CD"};
也就是说,第 2 行将替换为 AB,第 3 行替换为 BD,第 4 行替换为 CD。
不在 num[]array 中的行必须与所做的更改一起写入新文件。
到目前为止我有这个。我尝试了几种循环,但它仍然不起作用。
public class ReadFileandReplace {
/**
* @param args
*/
public static void main(String[] args) {
try {
int num[] = {3,4,5};
String[] VALUES = new String[] {"AB","BC","CD"};
int l = num.length;
FileInputStream fs= new FileInputStream("C:\\Users\\Antish\\Desktop\\Test_File.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
LineNumberReader reader = new LineNumberReader(br);
FileWriter writer1 = new FileWriter("C:\\Users\\Antish\\Desktop\\Test_File1.txt");
String line;
int count =0;
line = br.readLine();
count++;
while(line!=null){
System.out.println(count+": "+line);
line = br.readLine();
count++;
int i=0;
if(count==num[i]){
int j=0;;
System.out.println(count);
String newtext = line.replace(line, VALUES[j]) + System.lineSeparator();
j++;
writer1.write(newtext);
}
i++;
writer1.append(line);
}
writer1.close();
}
catch (IOException e) {
e.printStackTrace();
} finally {
}
}
}
预期的输出应如下所示:
public class MyC{
AB
BC
CD
Sys.out.println("hi");
}
}
当我运行代码时,所有行都出现在同一行。