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:
codice:
		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++;
				
			}
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 tutti