Java: PrintWriter 对象不输出我文件中的文本?

Java: PrintWriter object does not output the text on my file?

我正在尝试将某个程序的用户名打印到一个文件中,但 PrintWriter 没有在我的文件上打印任何内容。我已经尝试了 Whosebug none 中提到的所有内容。

用户Class

private File usersListFile;
private PrintWriter usersListPrintWriter;
private Scanner usersListScanner;

构造函数:

Users(){
    try {
        this.usersListFile = new File("D:\Dairy\usersList.txt");
        if(usersListFile.exists()){
            this.usersListPrintWriter = new PrintWriter(new BufferedWriter(new FileWriter("D:\Dairy\usersList.txt", true)));
            this.usersListScanner = new Scanner("D:\Dairy\usersList.txt");
        }
        else
            System.err.println("File does not exist !");
    }
    catch(Exception e){
        System.err.println("Error: Users Class!");                   
    }
}

方法:

public void addToUsersList(String username){
        usersListPrintWriter.print(username);           
    }

主要方法:

public static void main(String[] args) {

    Users usersObject = new Users();
    usersObject.addToUsersList("USERNAME");

    }
public void addToUsersList(String username){
    usersListPrintWriter.print(username);           
    usersListPrintWriter.flush();
}

然后,当您不再需要印刷作家时,请致电 close()

usersListPrintWriter 已缓冲,因此您需要刷新数据(正如 Alexandro 提到的那样)。

您可能还需要将 print 更改为 println,以便新添加的用户在单独的行中输出。

您的 Scanner 将不起作用,因为您正在扫描给定的字符串,而不是文件内容。请改用 new Scanner(this.usersListFile)

您还应该在上一行重新使用您的 File 对象:new FileWriter(this.usersListFile, true)

而且我会说同时打开同一个文件的 WriterScanner 是一个坏主意,如果它能工作的话。您可能应该在打开编写器之前将所有用户加载到内存中并关闭扫描仪,除非您有