当前位置: 技术问答>java相关
一个处理文本的问题。
来源: 互联网 发布时间:2015-01-04
本文导语: 我想实现这样一个效果。 就是读取一个文件,一行一行的读。当读到一行等于我指定的值。 然后再这行的下一行插入一段字符串。然后把这个文件改名保存。 请问该如何实现。最好能给个例子谢谢! | ...
我想实现这样一个效果。
就是读取一个文件,一行一行的读。当读到一行等于我指定的值。
然后再这行的下一行插入一段字符串。然后把这个文件改名保存。
请问该如何实现。最好能给个例子谢谢!
就是读取一个文件,一行一行的读。当读到一行等于我指定的值。
然后再这行的下一行插入一段字符串。然后把这个文件改名保存。
请问该如何实现。最好能给个例子谢谢!
|
java jINSERT test.out 9 "hello world"
will insert the string "hello world" at line number 9 in the file "test.out".
of course you need more error checking... [JDK1.1]
import java.io.*;
public class jINSERT {
public static void main(String args[]){
try {
jINSERT j = new jINSERT();
j.insertStringInFile
(new File(args[0]),Integer.parseInt(args[1]), args[2]);
}
catch (Exception e) {
e.printStackTrace();
}
}
public void insertStringInFile(File inFile, int lineno, String lineToBeInserted)
throws Exception {
// temp file
File outFile = new File("$$$$$$$$.tmp");
// input
FileInputStream fis = new FileInputStream(inFile);
BufferedReader in = new BufferedReader
(new InputStreamReader(fis));
// output
FileOutputStream fos = new FileOutputStream(outFile);
PrintWriter out = new PrintWriter(fos);
String thisLine = "";
int i =1;
while ((thisLine = in.readLine()) != null) {
if(i == lineno) out.println(lineToBeInserted);
out.println(thisLine);
i++;
}
out.flush();
out.close();
in.close();
inFile.delete();
outFile.renameTo(inFile);
}
}
will insert the string "hello world" at line number 9 in the file "test.out".
of course you need more error checking... [JDK1.1]
import java.io.*;
public class jINSERT {
public static void main(String args[]){
try {
jINSERT j = new jINSERT();
j.insertStringInFile
(new File(args[0]),Integer.parseInt(args[1]), args[2]);
}
catch (Exception e) {
e.printStackTrace();
}
}
public void insertStringInFile(File inFile, int lineno, String lineToBeInserted)
throws Exception {
// temp file
File outFile = new File("$$$$$$$$.tmp");
// input
FileInputStream fis = new FileInputStream(inFile);
BufferedReader in = new BufferedReader
(new InputStreamReader(fis));
// output
FileOutputStream fos = new FileOutputStream(outFile);
PrintWriter out = new PrintWriter(fos);
String thisLine = "";
int i =1;
while ((thisLine = in.readLine()) != null) {
if(i == lineno) out.println(lineToBeInserted);
out.println(thisLine);
i++;
}
out.flush();
out.close();
in.close();
inFile.delete();
outFile.renameTo(inFile);
}
}