In un mio programma java utilizzo uno StringBuilder per comporre una stringa,fin qui niente di strano...successivamente invoco un metodo per la lettura del contenuto di un file di testo...e a questo punto sorge il problema...vi posto in linea di massima cosa accade col codice:
codice:
public static String metodo (){
StringBuilder sb=new StringBuilder ();
...
sb.append (unaStringa);
...
sb.append (altraStringa);
...
String s=read (nomeFile , "UTF-8");
sb.append (s);
...
sb.append (ultimaStringa);
return sb.toString();
}
public static String read(String fileName,String charSet){
BufferedReader buffRead=null;
StringBuilder strBuff=new StringBuilder();
try{
buffRead=new BufferedReader(new InputStreamReader(new FileInputStream(fileName),charSet));
String str;
while((str=buffRead.readLine())!=null){
strBuff.append(str+"\r\n");
}
buffRead.close();
}catch(Exception e){
e.printStackTrace();
}
return strBuff.toString();
}
Alla fine del metodo "metodo ()" la stringa restituita dovrebbe essere "contenutoPrecedenteStringBuilder+ultimaString a"
mentre quello che avviene è che ultimaStringa sovrascrive partendo da sinistra il contenuto precedente dello StringBuilder...
perchè ho questo problema?come posso risolvere?
Ps. anche provando a fare alla fine "return sb.toString()+ultimaStringa;" avviene la sovrascrittura , ma non riesco a capire il perchè