Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    21

    [java]Leggere file .txt

    Causa poca esperianza con java vorrei sapere se le seguenti struzioni sono sensate:
    InputStreamReader a = new InputStreamReader("PLUTO.TXT");
    BufferedReader IN=new BufferedReader(a);
    String s1=new String();
    while(s1.compareTo("end")!=0)
    {
    try {s1=IN.readLine();}
    catch (IOException ea)
    {s1="ERRORE DI LETTURA";};

    System.out.println("Letto: "+s1);
    }

    (credo di no visto che in compilazione ho il seguente risultato:
    MiaFinestra.java:772: cannot resolve symbol
    symbol : constructor InputStreamReader (java.lang.String)
    location: class java.io.InputStreamReader
    InputStreamReader a = new InputStreamReader(nomeindex);
    ^
    1 error

  2. #2
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    Ti sarebbe bastato dare un'occhiata alle API per vedere che la classe InputStreamReader(...) ha quattro costruttori e tutti vogliono, come primo parametro, un InputStream.

    Guarda qua:

    Constructor Summary:
    InputStreamReader(InputStream in)
    Create an InputStreamReader that uses the default charset.

    InputStreamReader(InputStream in, Charset cs)
    Create an InputStreamReader that uses the given charset.

    InputStreamReader(InputStream in, CharsetDecoder dec)
    Create an InputStreamReader that uses the given charset decoder.

    InputStreamReader(InputStream in, String charsetName)
    Create an InputStreamReader that uses the named charset.

  3. #3
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Fai parecchia confusione:

    in Java 2 i flussi di input sono di due tipi: la prima generazione è quella degli InputStream/OutputStream, la seconda quella dei Reader/Writer.

    Per leggere un file devi usare o un FileInputStream o un FileReader. Eventualmente puoi bufferizzare il flusso per leggere una righa alla volta.

    La classe InputStreamReader invece ti crea un Reader che legge un InputStream, non c'entra niente con i file
    Linux user number 403381

    Stop TCPA!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    21
    Confusione si e tanta....
    Comunque avevo provato qualcosa con FileReader scrivendo:
    try {Input=new FileReader("PPLUTO.TXT");}
    catch (IOException ed) {Input=null;};

    try {
    Input.read(cbuf);
    System.out.println("LEGGO " + cbuf);

    } catch (IOException ed) {};
    dove byte[] cbuf;
    ma il risultato è il seguente:
    MiaFinestra.java:765: cannot resolve symbol
    symbol : method read (byte[])
    location: class java.io.FileReader
    Input.read(cbuf);
    ^
    1 error
    Nel caso sone sulla strada giusta se devo leggere riga per riga???
    Grazie

  5. #5
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Nella versione con i reader:

    codice:
      FileReader fr = new FileReader("Pippo.txt");
      BufferedReader br = new BufferedReader(fr);
      String s;  
    
      while ((s = br.readLine()) != NULL)
      {
        // Il tuo codice qui
      }
    è solo un esempio, i passi fondamentali sono la costruzione dei reader e il metodo readLine() di BufferedReader
    Linux user number 403381

    Stop TCPA!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    21
    Ho provato così:
    FileReader fr ;
    BufferedReader br;

    try {fr=new FileReader(nomeindex);}
    catch (IOException ed) {fr=null;};

    e non segnala errori, quando aggiungo :

    try {br=new BufferedReader(fr);}
    catch (IOException ed) {br=null;};

    la catastrofe!!!!!!!!!!!! ossia
    MiaFinestra.java:767: exception java.io.IOException is never thrown in body of corresponding try statement
    catch (IOException ed) {br=null;};
    ^
    1 error

  7. #7
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Ti sta semplicemente dicendo che il costruttore di BufferedReader non solleva nessuna IOException, quindi non devi mettere nessun blocco try/catch

    Controlla sempre la documentazione quando programmi !
    Linux user number 403381

    Stop TCPA!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.