0

宿題のために、ファイルとの間でバイト配列を読み書きできるクラスを作成する必要があります。CSV とテキストを読み書きできるクラスを正常に作成できましたが、配列に関しては少し問題があります。

FileOutput クラスを使用するメソッド (writeByte - 以下を参照) を作成しました (ファイルを作成します。クラスは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();

}
4

2 に答える 2

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]);   
            } 
        } 
于 2013-10-29T18:19:32.397 に答える