0

エラーをスローするコードは次のとおりです。TextPad で、配列の内容をテキスト ファイルに書き込もうとすると、NullPointerException が発生します。(配列には何も表示されません。) 注: Netbeans で完全に動作します。これはTextpadでのみ取得できます。Google を精査しましたが、なぜこれを行っているのかわかりません。

    void enterContact(){
    // test contact
    contactName = nameField.getText();
    if (contactName == null || contactName.equals(""))
    {
        JOptionPane.showMessageDialog(null, "Please enter a name.");
        return;
    }

    //test age betweeen 0 and 120
    contactAge = ageField.getText();

    try{
        Integer.parseInt(contactAge);
    }
    catch(NumberFormatException e){
        JOptionPane.showMessageDialog(null, "Please enter a valid age.");
    }
    finally{
        if (Integer.parseInt(contactAge) <= 0 || Integer.parseInt(contactAge) >= 121){
            JOptionPane.showMessageDialog(null, "Please enter a valid age.");
            return;
         }
    }

    // test email
    contactEmail = emailField.getText();
    if ( contactEmail == null || contactEmail.equals(""))
    {
        JOptionPane.showMessageDialog(null, "Please Enter an Email Address.");
        return;
    }

    //test cell number

    contactPhone = phoneField.getText();
    try
    {
        Integer.parseInt(contactPhone);
    }
    catch(Exception e) {
        JOptionPane.showMessageDialog(null, "Please Enter a valid Phone Number.");
        return;
    }

    String columns2[] =  {  contactName, contactAge, contactEmail, contactPhone  };

    //write data to file
    try{
        for (int i = 0; i < columns2.length; i++){
            fw.write(columns2[i].toString() + ", ");
          }
        fw.write("\r\n");
        fw.flush();
        fw.close();
4

2 に答える 2

1

NullPointerExceptionファイルへの書き込み中に取得した場合は、次の 2 つの可能性があります。

  1. ファイルを開けない場合があります。たとえば、 のコンストラクターの呼び出しを忘れたためですFileWriter

  2. ファイルを開いて書き込む権限がありません。

TextPad を使用して実行した場合にのみ例外が発生した場合は、2 つ目の問題が発生したと思います。許可がありません。

于 2013-03-29T19:51:36.350 に答える
0

TextPad を管理者モードで実行してみてください

テキストパッド アイコンを右クリック -> 管理者として実行

& then RUN 上記のプログラム

あなたのプログラムが正しく実行されると確信しています。

于 2013-03-29T20:02:47.543 に答える