开发者社区 问答 正文

从文件获取值并将其分配给Java中的数组

我对我的程序有问题。该计划的目标是:

创建一个新文件 创建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();
}
}

展开
收起
几许相思几点泪 2019-12-23 21:57:21 613 分享 版权
阿里云 AI 助理回答

看起来你的程序大部分已经实现了目标,但是你在读取文件并显示数据的部分可能存在问题。根据你的描述,你没有提供这部分的代码,所以我将基于你的需求提供一个示例来帮助你完成第三部分。

在你的主方法中,你需要添加读取文件并打印内容的逻辑。这里是一个可能的实现方式:

// ... 之前创建和写入文件的代码保持不变 ...

// 关闭 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,检查一下写入操作是否成功,以及文件路径是否正确无误。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: