gpt4 book ai didi

java - 我无法在同一个文本文件中读取和写入数据

转载 作者:行者123 更新时间:2023-12-02 02:58:10 24 4
gpt4 key购买 nike

在这段代码中,我正在名为 source 的文件中搜索字符串,如果它不存在,我必须在同一个文件(source)中写入该字符串。当我运行此代码时,整个程序没有响应。当我不从文件中读取并直接写入程序时,程序就可以工作。我究竟做错了什么?

if(addChoice.getSelectedItem().equals("Source")){ 
int i=0;
try {
FileInputStream fis=new FileInputStream("source.txt");
BufferedReader fd=new BufferedReader(new InputStreamReader(fis));
String source=fd.readLine();
while(source!=null){
if(source.equals(addTextField.getText())){
i++;break;
}
}
fis.close();
fd.close();
} catch (Exception e5) {
}
if(i==0){
try {
FileOutpuStream fis=new FileOutputStream("source.txt",true);
BufferedWriter fd=new BufferedWriter(new OutputStreamWriter(fis));
fd.newLine();
fd.write(addTextField.getText());
fis.flush();
fd.flush();
fis.close();
fd.close();
} catch (Exception e1) {
}
}
else{
addLabel.setText("Already Exists");
}
addLabel.setVisible(true);
}

最佳答案

String source=fd.readLine();
while(source!=null){
if(source.equals(addTextField.getText())){
i++;break;
}
}

如果 source 不为 null 并且 source.equals(addTextField.getText())false,则永远循环。

在循环中执行readline()

String source = null;
while((source = fd.readLine()) != null){
if(source.equals(addTextField.getText())){
i++;
break;
}
}

此外,您应该避免阻塞异常:

catch (Exception e1) {                           
}

打印它们或更好地记录它们:

catch (Exception e1) {                           
e1.printStackTrace();
}

catch (Exception e1) {
LOGGER.error("Error during reading writing operation", e1);
}

关于java - 我无法在同一个文本文件中读取和写入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784314/

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