PrintWriter无法打印到文件

该文件正在成功创建,但我无法让PrintWriter将任何内容打印到文本文件中。 码:

import java.io.File; import java.util.Scanner; import java.io.IOException; import java.io.PrintWriter; public class exams { public static void main (String[] args) throws IOException{ Scanner scanner = new Scanner(System.in); System.out.println("How many scores were there?"); int numScores = scanner.nextInt(); int arr[] = new int[numScores]; for (int x=0; x<numScores; x++){ System.out.println("Enter score #" + (x+1)); arr[x] = scanner.nextInt(); } File file = new File("ExamScores.txt"); if(!file.exists()){ file.createNewFile(); PrintWriter out = new PrintWriter(file); for (int y=0; y<arr.length; y++){ out.println(arr[y]); } } else { System.out.println("The file ExamScores.txt already exists."); } } } 

您必须刷新和/或关闭文件才能将数据写入磁盘。

在代码中添加out.close()

 PrintWriter out = new PrintWriter(file); for (int y=0; y 

您需要在程序退出之前关闭PrintWriter,这会影响刷新打印流以确保所有内容都写入文件。 尝试这个:

 PrintWriter out = null; try { //... out = new PrintWriter(file); //... } finally { if (out != null) { out.close(); } } 

一旦写完http://download.oracle.com/javase/1.4.2/docs/api/java/io/PrintWriter.html void close()关闭流,你需要刷新并关闭文件。 void flush()刷新流。

printwriter类适用于不带文件的流,这就是你无法写入该文件的原因。 您需要使用FileOutputStream创建文件,之后您将能够使用printwriter来写入该文件。 尝试这个:

FileOutputStream exam = new FileOutputStream(“ExamScores.txt”); PrintWriter out = new PrintWriter(考试,真实);