Ragazzi ho un file di testo da analizzare formato da 1riga di 100000 caratteri e vorrei usare il BufferedInputStream...ho scritto allora il seguente codice:
il problema è che arrivato al 128esimo carattere trova -1 ed finisce di ciclare...concludendo il programma!!Ma perchè??Ho notato che se diminuisco la dimensione all'array di byte c, portandola da 1024 a 332 riesco ad arrivare fino a circa il 200esimo poi trova -1 e finisce!!!Ma se i caratteri sono 100000 perchè dopo 200massimo esce?? ??? Grazie a tutticodice:BufferedInputStream is = new BufferedInputStream(new FileInputStream(fn.toString())); byte[] c = new byte[1024]; int i=0,j=29; int readChars = 0; StringBuilder s=new StringBuilder(""); while ((readChars = is.read(c)) != -1)//così arrivo a fine file { if(c[i]==c[j]) { //System.out.println("Dentro l'if c[i]"+c[i]+" "+"c[j]"+c[j]+ " i: "+i+" "+"j:"+j); s.append((char)c[i]); for(int h=1;h<29;h++) { i++; j--; // System.out.println("Dentro il for c[i]"+c[i]+" "+"c[j]"+c[j]+ " i: "+i+" "+"j:"+j); if(c[i]!=c[j]) { s=new StringBuilder(""); i-=h; j+=h; h=29; } else s.append((char)c[i]); } } i++; j++; }

Rispondi quotando