0
私の質問は、ティッカーの動作を使用して2秒ごとにファイルの行を別のエージェントに送信する方法ですか?ファイルを1秒ごとに2秒間隔でテロップの動作を使用して送信する
より具体的には、最初の反復では、エージェントは最初の行を送信します。第二に、エージェントは、など二行目を送信し、以下の
マイコード:あなたは何を約何あなたのコードに問題はありません言わない
package pack1;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.TickerBehaviour;
import jade.lang.acl.ACLMessage;
import jade.wrapper.ControllerException;
public class Agent2 extends Agent {
private static final long serialVersionUID = 1L;
int nombre_ligne = 0;
BufferedReader lecteurAvecBuffer = null;
@Override
protected void setup() {
FileInputStream fis;
try {
fis = new FileInputStream("/home/hduser/Bureau/word.txt");
@SuppressWarnings("resource")
LineNumberReader l = new LineNumberReader(new BufferedReader(
new InputStreamReader(fis)));
while ((l.readLine()) != null) {
nombre_ligne = l.getLineNumber();
}
lecteurAvecBuffer = new BufferedReader(new FileReader(
"/home/hduser/Bureau/esclave1/abc.txt"));
int a = 1;
while (a <= ((int) nombre_ligne)/3) {
a++;
String word = lecteurAvecBuffer.readLine();
addBehaviour(new TickerBehaviour(this, 2000) {
private static final long serialVersionUID = 1L;
@Override
protected void onTick() {
ACLMessage message = new ACLMessage(ACLMessage.INFORM);
message.addReceiver(new AID("agent1", AID.ISLOCALNAME));
message.setContent(word);
send(message);
}
});
a++;
}
lecteurAvecBuffer.close();
} catch (FileNotFoundException exc) {
System.out.println("Erreur d'ouverture");
} catch (IOException e) {
e.printStackTrace();
}
}
protected void takeDown() {
System.out.println("Destruction de l'agent");
}
@Override
protected void afterMove() {
try {
System.out.println(" La Destination : "
+ this.getContainerController().getContainerName());
} catch (ControllerException e) {
e.printStackTrace();
}
}
}
:あなたのような、文脈に最終として変数を宣言する必要があり、あなたは内部クラスからローカル変数にアクセスすると
:私はあなたが少なくとも約コンパイラのメッセージを取得すると思います2秒ごとに行... "という質問はありません。 – AgataB
ティッカーの動作を使用して、ファイルの行を別のエージェントに2秒ごとに送信する方法はありますか? @AgataB –
そうですね、それは意味があります。申し訳ありませんが、何かが不足していると考えまし – AgataB