gpt4 book ai didi

java - 如何更新或删除 .txt 文件中的特定行?

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

我已经有了将数据插入文本文件并进行搜索的方法。现在我想要“更新”和“删除”所选记录的方法。

这就是我到目前为止所做的,

private void InsertbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                             

fileWriter = null;
try {
String phone = Phone.getText();
String fname = Fname.getText();
String lname = Lname.getText();
String nic = NIC.getText();
String city = City.getSelectedItem().toString();

fileWriter = new FileWriter(file, true);
fileWriter.append(phone + "|" + fname + "|" + lname + "|" + nic + "|" + city+ "|");
fileWriter.append("\r\n");
fileWriter.flush();
JOptionPane.showMessageDialog(InsertGUI.this, "<html> " + phone + " <br> Successfully saved! </html>");

Phone.setText(null);
NIC.setText(null);
Fname.setText(null);
Lname.setText(null);
City.setSelectedIndex(0);

} catch (IOException ex) {
Logger.getLogger(InsertGUI.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fileWriter.close();
} catch (IOException ex) {
Logger.getLogger(InsertGUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
}


private void searchbuttonActionPerformed(java.awt.event.ActionEvent evt) {

try {
fileReader = new FileReader(file);
BufferedReader br = new BufferedReader(fileReader);

String selectedphone = SearchF.getText();

String content = "";
String temp = "";
try {
while ((temp = br.readLine()) != null) {
content += temp;
}
} catch (IOException ex) {
Logger.getLogger(UpdateGUI.class.getName()).log(Level.SEVERE, null, ex);
}
HashMap<String, String> map = new HashMap();
StringTokenizer stringTokenizer = new StringTokenizer(content, "|");
boolean found = false;
while (stringTokenizer.hasMoreTokens()) {
String phone = stringTokenizer.nextElement().toString();
String fname = stringTokenizer.nextElement().toString();
String lname = stringTokenizer.nextElement().toString();
String nic = stringTokenizer.nextElement().toString();
String city = stringTokenizer.nextElement().toString();

if (phone.equalsIgnoreCase(selectedphone)) {

Phone.setText(phone);
NIC.setText(nic);
Fname.setText(fname);
Lname.setText(lname);
switch (city) {
case "Ambalangoda":
City.setSelectedIndex(0);
break;
case "Ampara":
City.setSelectedIndex(1);
break;
case "Anuradhapura":
City.setSelectedIndex(2);
break;
case "Avissawella":
City.setSelectedIndex(3);
break;
case "Badulla":
City.setSelectedIndex(4);
break;
case "Balangoda":
City.setSelectedIndex(5);
break;
}
found = true;

}

}
if (!found) {
JOptionPane.showMessageDialog(UpdateGUI.this, "Phone number not found!");
Phone.setText(null);
NIC.setText(null);
Fname.setText(null);
Lname.setText(null);
City.setSelectedIndex(0);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(UpdateGUI.class.getName()).log(Level.SEVERE, null, ex);
}
}

有人可以帮我解决这个问题吗?我想要以下方法:

private void UpdatebuttonActionPerformed(java.awt.event.ActionEvent evt) {

}
private void DeleteButtonActionPerformed(java.awt.event.ActionEvent evt) {

}

提前致谢! :)

最佳答案

我给你举一个我发现的例子。在此示例中,我将替换一行内的字符串。您可以看到,在我的例子中,我正在读取 txt。

/*****

public static void replaceSelected(String replaceWith, String type) {
try {
// input the file content to the String "input"
BufferedReader file = new BufferedReader(new FileReader("notes.txt"));
String line;String input = "";

while ((line = file.readLine()) != null) input += line + '\n';

file.close();

System.out.println(input); // check that it's inputted right

// this if structure determines whether or not to replace "0" or "1"
if (Integer.parseInt(type) == 0) {
input = input.replace(replaceWith + "1", replaceWith + "0");
}
else if (Integer.parseInt(type) == 1) {
input = input.replace(replaceWith + "0", replaceWith + "1");
}

// check if the new input is right
System.out.println("----------------------------------" + '\n' + input);

// write the new String with the replaced line OVER the same file
FileOutputStream fileOut = new FileOutputStream("notes.txt");
fileOut.write(input.getBytes());
fileOut.close();

} catch (Exception e) {
System.out.println("Problem reading file.");
}
}

public static void main(String[] args) {
replaceSelected("Do the dishes","1");
}

*/

结果:

原文:

原始文本文件内容:

洗碗0喂狗0打扫了我的房间1输出:

洗碗0喂狗0

打扫了我的房间1

洗碗1喂狗0打扫了我的房间1

<小时/>

最近输出:

洗碗1(已更改)喂狗0打扫了我的房间1

<小时/>

也许这个例子对你有帮助。

问候!

关于java - 如何更新或删除 .txt 文件中的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980679/

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