gpt4 book ai didi

java - 如何使用 PrintWriter 编辑 txt 文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:27:37 24 4
gpt4 key购买 nike

我有以下 java 文件,它在 txt 文件中存储学生数据(学号和他们的姓氏):

import java.util.*;
import java.io.*;

public class Students {

static Student[] studentArray = new Student[100];
static int currentStudents = 0;

Scanner console = new Scanner(System.in);

File log = new File("log.txt");
PrintWriter output = new PrintWriter(new BufferedWriter(new FileWriter(log, true)));
Scanner input = new Scanner(log);

public static void main(String[] args) {

String logNo;
String logSurname;

if(!(input.hasNextLine())) {
System.out.println("No student data has been loaded.")
}

while(input.hasNextLine()) {
logNo = input.next();
logSurname = input.next();

addStudent(logNo, logSurname);

input.nextLine();
}

String number;
String surname;

System.out.println("Please input details:");
System.out.printf("\n");
System.out.println("Student number: ");
number = console.nextLine();
System.out.println("Student surname: ");
surname = console.nextLine();

output.println(number+"\t"+surname);

addStudent(number, surname);
editSurname();

output.close();

}

public static void addStudent(String number, String surname) {
studentArray[currentStudents] = new Student(number, surname);
}

public static void editSurname() {

String newSurname;

System.out.println("Please input student number:");

// find student with inputted student number

System.out.println("Please enter new surname");

// set surname to another using Student method

}
}

打开后,代码会读取 .txt 文件中的任何文本并根据需要构造 Student 对象,以便每次代码运行时系统状态都保持不变。

但是,当我调用 editSurname() 函数时,我正在努力寻找一种使用 PrintWriter 编辑 .txt 文件的方法。我将如何隔离具有特定学号的学生,然后编辑必填字段?

最佳答案

使用 csv 文件而不是 txt 文件。使用 OpenCSV处理记录。

  1. 让您的 txt 文件每行 1 条记录。
  2. 用分隔符分隔每个字段。
  3. 在内存中创建另一个临时文本文件。
  4. 修改记录并将记录保存在临时文件中。
  5. 删除原始文件。
  6. 用原来的文件名重命名临时文件。

要编辑你的学生记录,你需要先读取内存中的所有记录。创建一个学生对象数组来保存所有记录。执行二分查找对象并修改它们。

关于java - 如何使用 PrintWriter 编辑 txt 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19441834/

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