【问题标题】:Saving array into the file (Java)将数组保存到文件中(Java)
【发布时间】:2013-05-06 20:20:00
【问题描述】:

我需要解决这样的任务:

  1. 随机生成数组的长度 - 将此 int 保存到文件 ("input.txt)" 作为第一个数字;
  2. 随机生成数组元素 - 将每个元素保存到文件中(“input.txt”)

但数组元素不会保存到文件中。

正如我从控制台数组中看到的,有数字,但它们没有保存到文件中。

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) throws IOException {
    new Main().run();

    }

    Random rand;
    Scanner sc;
    PrintWriter pr, pr2;

    public void run() throws FileNotFoundException {
    pr2 = new PrintWriter(new File("input.txt"));
    pr = new PrintWriter(new File("output.txt"));
    rand = new Random();

    int a = rand.nextInt((int) Math.pow(10, 3));
    System.out.println(a);
    pr2.print(a);
    pr2.close();
    sc = new Scanner(new File("input.txt"));

    int[] arr = new int[a];

    for (int i = 0; i < arr.length; i++) {
        arr[i] = rand.nextInt((int) Math.pow(10, 3));

    }
    for (int i = 0; i < arr.length; i++) {
        System.out.println("" + i + ": " + arr[i]);
        pr2.print(arr[i]);

    }

    pr2.close();
    return;
    }

}

【问题讨论】:

  • 你关闭 pr2 然后尝试写入它。去掉 sc = new Scanner(new File("input.txt")) 之前的语句,关闭 writer。

标签: java arrays io printwriter


【解决方案1】:

您正在使用pr2.close(); 关闭流,然后尝试通过它打印一些东西。然后你再次关闭它。删除第一个pr2.close(); 它应该一切正常。 此外,您还有不必要的 Scanner 对象和第二个 PrintWriter。

【讨论】:

  • 也添加一个新的行符号:pr2.println(a);
  • 谢谢。我需要扫描仪和第二台打印机以进行进一步操作。
【解决方案2】:

您的问题是您在写入数组长度后立即调用pr2.close()。一旦你关闭PrintWriter,它将不再允许任何东西被写入文件;因此,当您稍后尝试将数组中的值写入pr2 时,pr2 会说:“天哪,我知道这家伙想让我写点东西,但我已经关门了,我就是做不到!”所以什么都没有写。

PrintWriter 的工作原理是将您所有的write(...)print(...) 调用存储到内存中,然后在您调用close()flush() 方法时将它们实际写入您的文本文件。虽然没有必要,但如果您希望与当前使用的第一个 close() 调用功能相似,则可以改用 flush(),但请确保在完全使用 Scanner 后调用 close() (否则你只是要求内存泄漏)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-20
    • 2015-05-30
    • 2010-12-28
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2012-11-06
    相关资源
    最近更新 更多