创建2D数组然后将其写入文件(Java)的困难

时间:2013-10-29 18:08:19

标签: java arrays file-io

对于家庭作业,我需要创建一个可以在文件中读取和写入字节数组的类。我已经成功创建了可以读写CSV和文本的类,但是当涉及到数组时,我遇到了一些困难。

我编写了一个方法(writeByte - 见下文),它使用FileOutput类(创建文件,类可以在http://www.devjavasoft.org/SecondEdition/SourceCode/Share/FileOutput.java找到)。 我陷入了嵌套for循环。我需要for循环来允许用户输入由制表符分隔的一系列整数。

运行以下代码时,我收到以下错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The method writeNewline() in the type FileOutput is not applicable for the arguments (String[])

我理解这条错误消息对我说的是什么,但是当我尝试在FileOutput类中创建一个新的writeNewLine方法时,我就没那么好了。我希望有人能够建议我如何纠正这个问题。我很高兴不使用FileOutput类,我只使用它,因为我已成功使用它创建了其他文件处理程序。

亲切的问候


public void writeByte(final String fileNameOUT){
    Scanner input = new Scanner (System.in);
    FileOutput createData = new FileOutput (fileNameOUT);
    System.out.println("How many rows?");
    int rowsOut = input.nextInt();
    System.out.println("How many columns?");
    int columnsOut = input.nextInt();


    System.out.println("Please enter data, separate each column with a tab.");


        String[] dataIn;
        int [] [] data = new int [rowsOut] [columnsOut];    
        String[] line = null;

        for (int i = 0; i < rowsOut; i++){
                    line = createData.writeNewline(dataIn = input.nextLine().split("\t"));
            for (int j = 0; j < columnsOut; j++){
                data[i][j] = Integer.parseInt(line[j]); 
                System.out.print(data[i][j]);

            } 
        }   
        createData.close();

}

2 个答案:

答案 0 :(得分:1)

通过查看代码,明确writeNewline没有参数。我想你想做的是:

for (int i = 0; i < rowsOut; i++){
            createData.writeNewline();
            String lineString = input.nextLine();
            line = lineString.split("\t");
            for (int j = 0; j < columnsOut; j++){
                data[i][j] = Integer.parseInt(line[j]); 
                System.out.print(data[i][j]);   
            } 
        } 

答案 1 :(得分:1)

我建议你使用IDE,比如Netbeans或Eclipse。 IDE会标记语法和语义问题,因此您可以在编辑代码时看到问题所在,您不必总是编译文件。 (我希望它作为评论,但我仍然不能这样做,很抱歉)。