是否试图通过java程序在文本文件的特定行之间添加行(字符串数组)?
我试图通过各种论坛来编写程序。 程序如下,目的是在现有txt文件的第三行之后,但在第五行之前添加行&;当我将看到这个程序的执行完成时,我试图安全地保留前面的行,但我没能进入3&;5.添加到第五行以下。 如果这个基本程序可以运行,那么我将尝试在文件的第3行和第3行之间添加“字符串数组”;5.喜欢
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.LineNumberReader;
public class WriteToFileExample {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String content = "This is the content to write into file by Mandar";
File file = new File("/example/mandar.txt");
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
FileWriter fw = new FileWriter(file.getAbsoluteFile(),true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.newLine();
bw.close();
System.out.println("Done");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
try {
LineNumberReader lnr = new LineNumberReader(new FileReader(file));
FileWriter fw = new FileWriter(file.getAbsoluteFile(),true);
BufferedWriter bw = new BufferedWriter(fw);
lnr.setLineNumber(6);
for(int i =1; i<lnr.getLineNumber();i++){
// System.out.println("for = "+i);
// bw.newLine();
if(i == 3){
System.out.println("4");
bw.write(content);
// bw.newLine();
}
}
bw.close();
System.out.println("Done1");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
请帮帮我。我没有得到任何线索或想法
# 1 楼答案
您正在使用
lnr.setLineNumber(6)
将lnr
设置为写入第6行。你的for
循环只是从1循环到6,并在i==3
时将内容写入第6行。我还没有测试过这个,但是试着使用lnr.setLineNumber(4)
并摆脱for循环# 2 楼答案
谢谢你, 我用你的方式尝试了我的场景,如下所示
但我在mandar文件中看到了一个新问题。在运行上述程序之前,预期如下所示
要是曼达呢。txt在运行上述程序之前进行了如下修改:-
表示现在空行更改为介于1和;但是我们(人类)知道字符串“4”应该在3和;5.但现在程序在第4行添加行,但现在我们可以看到mandar。txt格式如下
如何在任何时候确保;5在任何行号,然后我的字符串在它们之间输入 意味着我将在程序中获得两种方式 1.线路号 2.在应插入的位置安全插入行内容