我有一个包含大量单词的文本文件,我希望通过每4个单词写**来划分单词。 我到目前为止所做的是添加第一个**(前4个单词),并且在放置其他星星时遇到一些困难。
这是我的代码,直到现在(我正在使用java)
import java.io.*;
public class Insert {
public static void main(String args[]){
try {
INSERT In = new INSERT();
int tc=4;
In.insertStringInFile (new File("D:/Users//im080828/Desktop/Souad/project/reduction/weight/outdata/d.txt"), tc, "**");
}
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);
}
}
请给我一些想法
谢谢:)
答案 0 :(得分:2)
当你执行if (i == lineno)
时,你只会得到真if (i==4)
,所以你的行为是正常的。您需要使用模运算符if ((i % lineno) == 0)
来获取每个行的星形。
http://www.dreamincode.net/forums/topic/273783-the-use-of-the-modulo-operator/