如何使用 java 从链表写入文本文件

how to write from linkedlist to a text file using java

我写这段代码是为了将这个链表的节点写入一个文本文件,但是当我尝试使用 System.out.println("n.ModelName");

时,它无法使用 FileWriter
 public void modName() throws IOException{
     PrintWriter outputStream = null;
     outputStream = new PrintWriter(new FileWriter("C:\Users\OsaMa\Desktop\Toyota.txt"));
     node n=head;

    while (n != null){
       if(n.Company.equalsIgnoreCase("Toyota")){
          outputStream.println(n.ModelName);
           n=n.next;
       }
       else{
           n=n.next;
       }
        } 
    }

您需要明确调用 flush 或关闭输出流才能在文件中查看输出。因此,一旦您完成将数据写入流,您只需要求流将数据刷新到文件,如:

outputStream.flush();

或者如果您像这样关闭流:

outputStream.close();

关闭流并将数据刷新到文件。

您在使用 sysout 时看到输出的原因是内部执行了以下操作:

if (autoFlush)
    out.flush();

如果您想要相同的功能,请将您的 PrintWriter 定义为:

outputStream = new PrintWriter(new FileWriter("C:\Users\OsaMa\Desktop\Toyota.txt"), true);//set auto flush on
                                                                                        ^^^^^

试试这个

public void modName() throws IOException{

     PrintWriter outputStream = null;
     outputStream = new PrintWriter("C:\Users\OsaMa\Desktop\Toyota.txt","UTF-8");
     node n=head;

    while (n != null){
       if(n.Company.equalsIgnoreCase("Toyota")){
          outputStream.println(n.ModelName);
           n=n.next;
       }
       else{
           n=n.next;
       }
        } 
    outputStream.close();

}

您需要在写入完成后关闭流。

另请参阅

  • How to create a file and write to a file in Java?