Optimisation de code java

Fermé
bloomingdals - 2 avril 2013 à 18:24
Bonjour,
la classe suivante permet d'éxécuter une requête snmpwalk et ecrire afficher le resultat ligne par ligne. je voudrai faire en sorte que l'affichage se fait par bloc de 1000 lignes car le resultat de la requête est trop long. svp aidez moi merci

voici le code:

public class SNMPWalk
{
static OID targetOID;
static File targetFile;
static String separateur;
static String SQLTable;
static String colonne;

public SNMPWalk(Storage s,OID targetOID, File targetFile, String separateur) throws IOException
{
this.targetOID=targetOID;
this.targetFile=targetFile;
this.separateur=separateur;
this.SQLTable=SQLTable;
this.colonne=colonne;

// redirection de la sortie standard

FileWriter fw = new FileWriter (targetFile);
BufferedWriter bw = new BufferedWriter (fw);

// changer la sortie standard
PrintWriter printStream = new PrintWriter(bw);


PDU requestPDU = new PDU();
requestPDU.add(new VariableBinding(targetOID));
requestPDU.setType(PDU.GETNEXT);

// Create Target Address object
Address targetAddress = new UdpAddress(s.getRouterAddr());
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString(s.getCommunity()));
target.setAddress(targetAddress);
target.setVersion(SnmpConstants.version2c);

try
{
TransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
transport.listen();

boolean finished = false;
int i=0;

while (!finished)
{
VariableBinding vb = null;

PDU responsePDU = snmp.sendPDU(requestPDU, target);
if (responsePDU != null)
{
vb = responsePDU.get(0);
}

if (responsePDU == null)
{

finished = true;
}
else if (responsePDU.getErrorStatus() != 0)
{

System.out.println(responsePDU.getErrorStatusText());
finished = true;
}
else if (vb.getOid() == null)
{

finished = true;
}
else if (vb.getOid().size() < targetOID.size())
{

finished = true;
}
else if (targetOID.leftMostCompare(targetOID.size(),
vb.getOid()) != 0)
{

finished = true;
}
else if (Null.isExceptionSyntax(vb.getVariable().getSyntax()))
{

finished = true;
}
else if (vb.getOid().compareTo(targetOID) <= 0)
{

System.out.println(vb.toString() + " <= "+targetOID);
finished = true;

}
else
{
i++;
// Dump response.
String [] resultat= (vb.toString()).split(separateur);
//System.out.println(resultat[1]);
printStream.println(resultat[1]);
printStream.flush();
// Set up the variable binding for the next entry.
requestPDU.setRequestID(new Integer32(0));
requestPDU.set(0, vb);

}
}


snmp.close();

}
catch (IOException e)
{
System.out.println("IOException: "+e);
}



}


}
}
A voir également: