我有一个文本文件sample.txt
,其中包含以下几行
sample1.txt
test.ppt
example.doc
content.pdf
我有一个名为 field
的动态变量(例如 phpcookbook.pdf
、sample1.txt
),它应该与 中的每一行进行比较>sample.txt
文件,如果文本文件不包含字段
,则应附加到sample.txt
。我已尝试以下代码,但它不起作用:
File insert=new File(sample.txt);
BufferedReader br = new BufferedReader(new FileReader(insert));
String strLine;
while ((strLine = br.readLine()) != null) {
if(!strLine.equals(field)) {
FileWriter fw = new FileWriter(insert, true);
BufferedWriter bw = new BufferedWriter(fw);
bw.append(field);
bw.close();
}
}
我应该得到以下输出
sample1.txt
test.ppt
example.doc
content.pdf
phpcookbook.pdf
如何逐行比较文本文件与动态变量?
最佳答案
如果我正确理解了这个问题,这就是您所需要的:
File insert = new File("sample.txt");
BufferedReader br = new BufferedReader(new FileReader(insert));
String strLine;
Boolean hasLine = false;
while ((strLine = br.readLine()) != null) {
if(strLine.equals(field)) {
hasLine = true;
break;
}
}
br.close();
if (!hasLine) {
FileWriter fw = new FileWriter(insert, true);
BufferedWriter bw = new BufferedWriter(fw);
bw.append(field + "\n"); // assumes field does not already have a newline
bw.flush();
bw.close();
}
注意break;
。这将中断 while 循环,因为您已经找到了所需的答案。
Your original code was doing:
for every line:
Do I equal field?
Yes: goto next line
No: append field to file and goto next line
但是您想知道的是 field
是否出现在文件中,而不是出现在每一行中。
关于java - 逐行比较文本文件与动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17193622/