martedì 16 aprile 2013

Lettura contenuto di un file da carattere a carattere in java

Con queste poche righe è possibile leggere il contenuto di un file dalla posizione di un carattere ad un altra; può ad esempio essere utile quando riceviamo un errore in un punto di un file xml e non possiamo ottenere altri tipi di errore.

public class main {

 public static void main(String[] args) {
  try {  
   FileInputStream fstream1 = new FileInputStream("c:\\test.txt");
   DataInputStream in1 = new DataInputStream(fstream1);
   try {    
    Writer writer = new StringWriter();      
    char[] buffer = new char[10024];   //esempio dimensione buffer

    Reader reader = new BufferedReader(new InputStreamReader(in1));    
    int n; 
    int fromChar=9; //esempio dal carattere 9
    int toChar=11; //esempio leggo 2 caratteri
    while ((n = reader.read(buffer)) != -1)
     writer.write(buffer, 0, n);   
    System.out.print("testo intero: "+writer.toString()+"\n");
    System.out.print("testo trovato: "+writer.toString().substring(fromChar,toChar));
   }catch(Exception e){
    System.out.print("errore lettura: "+e.getMessage());
   }
   finally{
    in1.close();
   }

  }catch(Exception e){
    System.out.print("errore: "+e.getMessage());
  } 
 }
}