【问题标题】:Input / Output Java输入/输出 Java
【发布时间】:2014-04-06 19:27:50
【问题描述】:

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

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();
    }
}

【问题讨论】:

  • 您可能想要打印randomInt 而不是randomGenerator

标签: java input output


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你正在关闭你的输出 INSIDE 你的,把它移到外面。 (也打印 randomInt 而不是 randomGenerator)

    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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2013-06-21
      • 2012-07-19
      • 2012-11-17
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多