如何使用数组创建新文件并将整数写入文件?

时间:2014-06-30 07:10:35

标签: java

如何创建新文件并将整数写入文件?我尝试使用在线帮助,但我仍然收到错误。

在课堂上,阵列对我来说一直是个糟糕的噩梦,如果能够清楚地了解如何在文件中编写内容,那就太好了。

提前致谢并抱歉完全无知编程。

3 个答案:

答案 0 :(得分:0)

您的类构造函数接受String和int作为参数,但您要传递String和数组对象

WriteInts wi = new WriteInts("mydata.dat" , myArr); // this line

如果您不确定要传递多少个字,那么您应该将构造函数参数类型更改为varargs

public WriteInts(String ar, int a){

替换此行
public WriteInts(String ar, int... a){

如果你想一次只传递一个int,那么在循环中逐个传递数组元素

WriteInts wi = new WriteInts("mydata.dat" , myArr[n]);

答案 1 :(得分:0)

其他一些观察结果:

if (!file.exists())
file.createNewFile();
file.canRead();

我不确定你在这里尝试做什么,如果它不存在则没有必要创建一个文件。如果不存在,将通过BufferedWriter为您创建一个。如果目的是其他目的,例如,要附加到文件(如果存在),您可以使用其他方法。一个这样的例子是:

BufferedWriter outputWriter = new BufferedWriter(new FileWriter(file, true)); // second argument means append

使用FileWriter选项进行追加。

如果您需要创建一个新文件夹来保存新文件,那么应该>之前创建它。

此外,当outputWriter.flush();跟随outputWriter.close();时,close()是不必要的。

答案 2 :(得分:0)

使用这个简单的实用程序。

将int写入文件的最简单方法

public class WriteInts {

    private String fname;

    public WriteInts(String fname) {
        this.fname = fname;
    }

    public void write(int... a) throws IOException {
        File file = new File(fname);
        try {
            System.out.println("WRiting to-" + file.getAbsolutePath());

            if (!file.exists())
                file.createNewFile();
            file.canRead();

        } catch (IOException x) {
            x.printStackTrace();
        }
        BufferedWriter outputWriter = new BufferedWriter(new FileWriter(file));

        for (int i = 0; i < a.length; i++) {
            outputWriter.write(Integer.toString(a[i]));
            /*
             * Add new line to keep them seperated
             */
            outputWriter.newLine();
        }
        /*
         * Flush and close the stream
         */
        outputWriter.flush();
        outputWriter.close();

    }

    public static void main(String[] args) {

        int myArr[] = { 16, 31, 90, 45, 89 };
        try {
            WriteInts wi = new WriteInts("mydata.dat");
            wi.write(myArr);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}