2014-04-06 154 views
1

我的程序应该在文本文件上写入100个随机整数并读取它们。问题是我只打印1个整数。我知道我很接近。我究竟做错了什么?输入/输出Java

import java.util.Random; 

public class WriteData {  
    public static void main(String[] args) throws Exception { 
     //create a file instance 
     java.io.File file = new java.io.File("random100.txt"); 
     if (file.exists()) { 
      System.out.println("File already exists"); 
      System.exit(0); 
     } 
     //create a file 
     java.io.PrintWriter output = new java.io.PrintWriter(file); 
     //write formatted output to the file 
     Random randomGenerator = new Random(); 
     for (int idx = 1; idx <= 100; ++idx) { 
      int randomInt = randomGenerator.nextInt(100); 
      output.print(randomGenerator); 
      //log("Generated : " + randomInt); 
      //close file 
      output.close(); 
     } 
    } 
} 


import java.util.Scanner; 

public class ReadData { 

    public static void main(String[] args) throws Exception { 
     //create file instance 
     java.io.File file = new java.io.File("random100.txt"); 
     //create a scanner for the file 
     Scanner input = new Scanner(file); 
     //read data from a file 

     while (input.hasNext()) { 

      int number = input.nextInt(); 
      System.out.println(number + " "); 
     } 
     //close file 
     input.close(); 
    } 
} 
+0

您可能想打印'randomInt'而不是'randomGenerator'。 –

回答

2

output.close();应该在for循环之外。现在,循环只执行一次,并且outputStream被关闭。因此,你只能得到一个数字。

1

你正在关闭你的输出INSIDE你的for,把它移到外面。 (print randomInt not randomGenerator also)

public static void main(String[] args)throws Exception { 
    //create a file instance 
    java.io.File file = new java.io.File("random100.txt"); 
    if(file.exists()){ 
     System.out.println("File already exists"); 
     System.exit(0); 
    } 
    //create a file 
    java.io.PrintWriter output = new java.io.PrintWriter(file); 
    //write formatted output to the file 
    Random randomGenerator = new Random(); 
    for (int 0 = 1; idx < 100; ++idx){ 
     int randomInt = randomGenerator.nextInt(100); 
     output.print(randomInt); 
    } 
    //close file 
    output.close(); 
}