2011-04-16 11 views
9

El archivo se está creando correctamente, pero no puedo hacer que PrintWriter imprima nada en el archivo de texto. Código:PrintWriter no se puede imprimir en el archivo

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."); 
     } 
    } 
} 

Respuesta

19

Tienes que vaciar y/o cerrar el archivo para obtener los datos escritos en el disco.

Añadir out.close() en el código:

PrintWriter out = new PrintWriter(file); 
for (int y=0; y<arr.length; y++){ 
    out.println(arr[y]); 
} 
out.close() 
+0

Gracias! Sabía que era algo pequeño. – tim

3

que necesita para cerrar la PrintStream antes de salir del programa, que tiene el efecto de lavado del flujo de impresión para asegurarse de que todo está escrito en el archivo. Prueba esto:

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

la clase de impresor funciona con transmisiones que no tienen archivos, es por eso que no puede escribir en ese archivo. necesita crear un archivo utilizando FileOutputStream, luego de eso podrá usar printwriter para escribir en ese archivo. Pruebe esto:

FileOutputStream exam = new FileOutputStream ("ExamScores.txt"); PrintWriter out = new PrintWriter (examen, verdadero);

Cuestiones relacionadas