【问题标题】:How to edit a txt file using PrintWriter?如何使用 PrintWriter 编辑 txt 文件?
【发布时间】:2013-10-18 04:54:04
【问题描述】:

我有以下 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 文件的方法。我将如何隔离具有特定学号的学生,然后编辑必填字段?

【问题讨论】:

    标签: java printwriter


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      为什么不应该使用数据库的概念,用数据库很容易做到

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-08
        • 2020-08-02
        • 2016-03-19
        • 1970-01-01
        相关资源
        最近更新 更多