3

私が作成した同様のプロジェクトと同様に、このプロジェクトは txt ファイルから文字を読み取り、文字列の順序を逆にして別の txt ファイルに書き直しています。しかし、「問題が発生しました」という例外が出力され続けます。何が問題なのかを修正するのを手伝ってくれる人はいますか?

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

public class ReverseFile
{
    public static void main(String[] args) throws IOException
       {
          try{
          String source = args[0];
          String target = args[1];

          File sourceFile=new File(source);

          Scanner content=new Scanner(sourceFile);
          PrintWriter pwriter =new PrintWriter(target);

          while(content.hasNextLine())
          {
             String s=content.nextLine();
             StringBuffer buffer = new StringBuffer(s);
             buffer=buffer.reverse();
             String rs=buffer.toString();
             pwriter.println(rs);
          }
          content.close();    
          pwriter.close();
          System.out.println("File is copied successful!");
          }

          catch(Exception e){
              System.out.println("Something went wrong");
          }
       }
}

したがって、スタックトレースからの情報は次のとおりです。

java.lang.ArrayIndexOutOfBoundsException: 0
    at ReverseFile.main(ReverseFile.java:36)
4

5 に答える 5

3

プログラムの実行中に、コマンドラインでファイル名 (ソースとターゲット) を指定する必要があります。

java ReverseFile source.txt target.txt

あなたのプログラムでは、コマンドラインからファイルの名前を次のように読み取ろうとします

String source = args[0];
String target = args[1];

そこでこれらの名前を指定しないと、空のインデックス 0 と 1 でjava配列にアクセスしようとすると、 が返されます。 argsArrayIndexOutOfBoundsException

于 2013-04-22T02:20:11.737 に答える