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:
Alla fine del metodo "metodo ()" la stringa restituita dovrebbe essere "contenutoPrecedenteStringBuilder+ultimaString a"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(); }
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è![]()

Rispondi quotando