文件正在成功创建,但我无法让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.");
}
}
}
答案 0 :(得分:24)
您必须刷新和/或关闭文件才能将数据写入磁盘。
在代码中添加out.close()
:
PrintWriter out = new PrintWriter(file);
for (int y=0; y<arr.length; y++){
out.println(arr[y]);
}
out.close()
答案 1 :(得分:3)
您需要在程序退出之前关闭PrintWriter,这样可以刷新打印流以确保所有内容都写入文件。试试这个:
PrintWriter out = null;
try {
//...
out = new PrintWriter(file);
//...
} finally {
if (out != null) {
out.close();
}
}
答案 2 :(得分:2)
完成写入后,您需要刷新并关闭文件 http://download.oracle.com/javase/1.4.2/docs/api/java/io/PrintWriter.html void close() 关闭流。 void flush() 冲洗流。
答案 3 :(得分:-1)
printwriter类适用于不带文件的流,这就是您无法写入该文件的原因。您需要使用FileOutputStream创建文件,之后您将能够使用printwriter来写入该文件。试试这个:
FileOutputStream exam = new FileOutputStream(“ExamScores.txt”); PrintWriter out = new PrintWriter(exam,true);