我对我的程序有问题。该计划的目标是:
创建一个新文件 创建100个随机整数并将其写入创建的文件。数字必须用文件中的空格分隔。 从文件读回数据并显示数据。 实际上,我已经完成了第一部分和第二部分。实际上,我已经写了第三部分,但它只返回0值100次。它不读取文件包含的值。
顺便说一句,程序应创建新文件并以相同的执行方式读取相关文件。
你可以帮帮我吗?
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;
public class Task3 {
public static void main(String[] args) throws IOException {
String home = System.getProperty("user.home");
File file = new File(home + File.separator + "Desktop" + File.separator + "Example.txt");
if(file.exists()) {
System.out.println("File already exists");
file.delete();
file.createNewFile();
}
PrintWriter output = new PrintWriter(file);
Random random = new Random();
for (int i = 0; i <= 100 ; i++) {
output.print(random.nextInt(100) + " ");
if(i == 99) output.print(random.nextInt(100));
}
Scanner readFile = new Scanner(file);
readFile.useDelimiter("\\s");
int [] readRandomNumbers = new int [100];
int i = 0;
while(readFile.hasNextInt()){
readRandomNumbers[i++] = readFile.nextInt();
}
for (int j = 0; j < readRandomNumbers.length; j++) {
System.out.println(readRandomNumbers[j]);
}
output.close();
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
看起来你的程序大部分已经实现了目标,但是你在读取文件并显示数据的部分可能存在问题。根据你的描述,你没有提供这部分的代码,所以我将基于你的需求提供一个示例来帮助你完成第三部分。
在你的主方法中,你需要添加读取文件并打印内容的逻辑。这里是一个可能的实现方式:
// ... 之前创建和写入文件的代码保持不变 ...
// 关闭 PrintWriter
output.close();
// 现在开始读取文件
try (Scanner scanner = new Scanner(file)) {
while (scanner.hasNext()) {
// 注意:这里假设文件中的数字是以空格分隔的
if (scanner.hasNextInt()) {
int number = scanner.nextInt();
System.out.print(number + " ");
} else {
// 如果遇到非整数,跳过它(这取决于你的文件格式,如果保证都是整数,这行可以忽略)
scanner.next();
}
}
} catch (FileNotFoundException e) {
System.out.println("File not found.");
}
这段代码首先关闭了 PrintWriter
以确保所有数据都已正确写入文件。然后,使用 Scanner
类打开文件进行读取。通过循环调用 hasNextInt()
和 nextInt()
方法,你可以逐个读取文件中的整数,并使用 System.out.print()
打印它们,数字之间用空格分隔。
请确保在实际运行此代码片段之前,你的文件确实已经被正确写入了100个随机整数,并且这些数字之间由空格分开。如果仍然只显示0,检查一下写入操作是否成功,以及文件路径是否正确无误。