gpt4 book ai didi

java - 逐行比较文本文件与动态变量

转载 作者:行者123 更新时间:2023-12-01 17:23:03 24 4
gpt4 key购买 nike

我有一个文本文件sample.txt,其中包含以下几行

sample1.txt
test.ppt
example.doc
content.pdf

我有一个名为 field 的动态变量(例如 phpcookbook.pdfsample1.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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com