该程序创建一个名为datafile.txt的文件,并且应该使用文本I / O将100个随机写入文件的整数写入。但是,我的输出是“java.util.Random@30c221”100次。如何获得100个随机数?提前谢谢。
import java.io.*;
import java.util.Random;
public class Lab5 {
public static void main(String args[]) {
//Open file to write to
try {
FileOutputStream fout = new FileOutputStream("F:\\IT311\\datafile.txt");
int index = 0;
//Convert FileOutputStream into PrintStream
PrintStream myOutput = new PrintStream(fout);
Random numbers = new Random();
//Declare array
int array[] = new int[100];
for (int i = 0; i < array.length; i++)
{
//get the int from Random Class
array[i] = (numbers.nextInt(100) + 1);
myOutput.print(numbers + " ");
}
}
catch (IOException e) {
System.out.println("Error opening file: " + e);
System.exit(1);
}
}
}
答案 0 :(得分:0)
myOutput.print(numbers + " ");
您正在此处打印Random
班级实例。
您需要执行以下操作:
myOutput.print(numbers.nextInt(100)+ " ");
编辑:
不,只是array
会再次打印类似输出(Object String),如果要输出存储在数组中的随机值,则需要执行以下操作:
myOutput.print(array[i] + " ");
答案 1 :(得分:0)
Random numbers = new Random();
for (int i = 0; i < array.length; i++)
{
myOutput.printf("%d\n",numbers.nextInt(100)+1);
}
答案 2 :(得分:0)
如果您以后不打算使用该阵列。如果你这样做会更好:
for (int i = 0; i < 100; i++) {
myOutput.print(numbers.nextInt(100) + 1);
}
但是如果你以后要使用这个数组。你应该这样做:
for (int i = 0; i < array.length; i++) {
//get the int from Random Class
array[i] = (numbers.nextInt(100) + 1);
myOutput.print(array[i] + " ");
}
由于您正在文件中打印Random类实例。
答案 3 :(得分:0)
替换此行
myOutput.print(numbers + " ");
使用这段代码
myOutput.print(array[i] + " ");
因为新生成的随机数现在出现在array
。