Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446

    Read char con BufferedReader

    Salve ragazzi,ho qualche problema a leggere un carattere...questo perchè sto riscrivendo un programma che prima non utilizzava BufferedReader/writer ma il semplice dataoutputstream/inputstream,ho una variabile char chiamata c,al momento inizializzata a 0,quando usavo datainputstream per attribuire un nuovo valore a c,dato dall'utente scrivevo c=inzx.readChar();,ora però vorrei usare bufferedreader ma nn ho capito cosa devo utilizzare al posto di read char,ho visto lo javadoc e mi ha aiutato facendomi capire che bufferedreader non usa readChar ma read();...però non funziona...perchè scrivendo c=inzx.read(); compilando mi dice che trova un int ma ovviamente si aspetta un char...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Read char con BufferedReader

    Originariamente inviato da energie
    Salve ragazzi,ho qualche problema a leggere un carattere...questo perchè sto riscrivendo un programma che prima non utilizzava BufferedReader/writer ma il semplice dataoutputstream/inputstream,ho una variabile char chiamata c,al momento inizializzata a 0,quando usavo datainputstream per attribuire un nuovo valore a c,dato dall'utente scrivevo c=inzx.readChar();,ora però vorrei usare bufferedreader ma nn ho capito cosa devo utilizzare al posto di read char,ho visto lo javadoc e mi ha aiutato facendomi capire che bufferedreader non usa readChar ma read();...però non funziona...perchè scrivendo c=inzx.read(); compilando mi dice che trova un int ma ovviamente si aspetta un char...
    Beh, lo dice la documentazione:

    read

    public int read()
    throws IOException

    Reads a single character.

    Returns:
    The character read, as an integer in the range 0 to 65535 (0x00-0xffff), or -1 if the end of the stream has been reached
    Ti basta controllare se il valore di ritorno è diverso da -1 (eof) e quindi fare un cast a char!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    ciao andbin,grazie per la risposta,ho provato ma sbaglierò in qualcosa,ecco una porzione di codice:

    int oes=0;
    char c=(char)oes;
    try
    {
    System.out.println("Avvio in corso");
    outzx.write("Programma avviato");
    oes=inzx.read();
    System.out.print("c:"+c);//istruzione inserita per controllare se il cast funziona
    }
    catch (IOException e)
    {
    System.out.println(e);
    }

    while (c!=-1)
    {

    try
    {....}

    Questa è una porzione di codice,quando provo a leggere la c con l'istruzione systemetcetc non mi da alcun valore....dove sbaglio?Grazie mille

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da energie
    int oes=0;
    char c=(char)oes;
    Un cast e una assegnazione qui ha poco senso.

    Originariamente inviato da energie
    oes=inzx.read();
    System.out.print("c:"+c);//istruzione inserita per controllare se il cast funziona
    È qui che dovresti controllare se oes (che è un int) è diverso da -1 e quindi poi fare un cast mentre assegni il valore a c.

    Originariamente inviato da energie
    while (c!=-1)
    Questo comunque è concettualmente sbagliato. 'c' è un char e il char è un tipo di dato senza segno, quindi sarà sempre diverso da -1.


    codice:
    int ic = inzx.read();
    
    if (ic != -1)
    {
        char c = (char) ic;
    
        // usa c
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2025 vBulletin Solutions, Inc. All rights reserved.