誰でもtxtファイルから電話番号を抽出するのを手伝ってくれます。ID という名前のフォルダーにたくさんの txt ファイルを取得しました。ユーザーが特定の ID を入力すると、midlet はファイルのタイトルを id.txt として読み取り、文字列をファイル内の電話番号として読み取り、その文字列にメッセージを送信します (たとえば、入力が 1 の場合、1 を読み取ります。 txt は文字列 123467890 を返し、メッセージを 1234567890 に送信します)。
しかし、今私の問題は、コードでtxtファイルを読み取ることができるということです:
**public String Loadnumber(String fileName){
String str="";
try{
FileConnection fc =(FileConnection)Connector.open("file://localhost/root1/res/number/"+fileName);
if(!fc.exists()){
hrow new IOException("File does not exist");
}
InputStream is=fc.openInputStream();
byte b[]=new byte[1024];
int length = is.read(b,0,1024);
str = new String (b,0,length);
}catch(Exception e ){
}
return str;
}****
次に、Loadnumber 関数の戻り文字列を電話番号アドレス ボックスに挿入しました。
**String number= new String(Loadnumber(id+".txt"));
destinationAddressBox.insert(number,0);**
destinationAddressBox は電話番号ボックスです。ID を入力してボタンを押すと、このボックスが表示されます。次のように宣言しました。
**destinationAddressBox = new TextBox("phone number", number,1024,TextField.PHONENUMBER);
destinationAddressBox.addCommand(okCommand);
destinationAddressBox.setCommandListener(this);**
しかし、それを実行して、ID を入力するボックスで [OK] ボタンを押した後、アドレス ボックスが表示されず、次のようなエラー メッセージが表示されます。
**java.lang.IllegalArgumentException
at javax.microedition.lcdui.TextField.insert(+55)
at javax.microedition.lcdui.TextField.insert(+14)
at javax.microedition.lcdui.TextBox.insert(+9)
at example.sms.SMSSend.commandAction(+72)
at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(+186)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+57)**
しかし、テキスト フィールドを TextField.PHONENUMBER ではなく TextField.ANY に変更すると、アドレス ボックスが表示され、txt ファイルに電話番号が表示されますが、メッセージは送信されず、エラー メッセージが表示されます。
**java.lang.IllegalArgumentException: Host format
at com.sun.midp.io.j2me.sms.Protocol.openPrimInternal(+198)
at com.sun.midp.io.j2me.sms.Protocol.openPrim(+8)
at javax.microedition.io.Connector.openPrim(+299)
at javax.microedition.io.Connector.open(+15)
at javax.microedition.io.Connector.open(+6)
at javax.microedition.io.Connector.open(+5)
at example.sms.SMSSend.run(+100)**
テキストフィールドは非常に重要だと思います。どうすればそれをバランスさせることができますか?よろしくお願いします!