ByteBuffer e .toString()

di il
8 risposte

ByteBuffer e .toString()

Salve ragazzi siccome il codice è abbastanzal ungo vi posto l'ultima parte.
Praticamente dovrei chiedere il nome dell'alunno l'età e la classe.
Per quanto riguarda la creazione del file non ho avuto nessun tipo di problema crea tranquillamente il file e esegue l'acquisizione senza nessun problema. però nel LeggiFile cioè la stampasuconsole mi sorge un problema
mi dovrebbe stampare:
nome : il nome dell'alluno
classe: classe
età: età


però mi visualizza cosi:

nome: il nome + la classe + l'età
classe : classe
età : età


if( fileChannel.read( buffer ) == -1 ) {
return null;
}
Studente st = new Studente();
buffer.position( 0 );
st.nome = buffer.asCharBuffer().toString();

buffer.position( buffer.position() + 30);
st.cognome =buffer.asIntBuffer().get();
buffer.position( buffer.position() + 30 );
st.eta = buffer.asFloatBuffer().get();
buffer.position( buffer.position() + 6 );
buffer.position( 0 );
return st;
}
}
P.s st.cognome in realtà sarebbe la classe

nome Stringa di 30
classe Intero di 30
eta Intero di 6

Secondo me il problema è generato da quel .toString();

qualcuno mi può aiutare?

grazie in anticipo

8 Risposte

  • Re: ByteBuffer e .toString()

    Ciao.. forse l'errore potrebbe essere dato dal \"toString\".. prova a toglierlo e vedi cosa succede.. se ti da errore potresti cmq eliminarlo con un cast..
    es.

    st.nome = (string) buffer.asCharBuffer()

    attendo tue notizie.. Saluti...
  • Re: ByteBuffer e .toString()

    Ciao grazie per la risposta ho provato ad inserire

    st.nome = (string) buffer.asCharBuffer() ;
    ma da come errore
    symbol : class string
    location: class LeggiFile
    st.nome = (string) buffer.asCharBuffer() ;
    ^
    1 error

    Process completed.

    se tolgo toString() invece da errore:
    found : java.nio.CharBuffer
    required: java.lang.String
    st.nome = buffer.asCharBuffer();
    ^
    1 error

    Process completed.

    le librerie che ho importato sono :
    import java.io.*;
    import java.nio.*;
    import java.nio.channels.*;
    import java.text.*;
    import java.lang.String;
    import java.nio.charset.*;
    import java.io.FileReader;
  • Re: ByteBuffer e .toString()

    Scusami.. colpa mia.. in java la classe delle stringhe ha la s maiuscola.. prova a fare il cast con (String)...
    cmq.. se nn dovesse funzionare puoi \"aggirare\" il problema costruendoti una funzione che prende in esame i primi n caratteri fino allo spazio.. così ti ricavi per vie traverse il nome.. lo so.. nn è molto elegante.. ma quantomeno se nn si trova la soluzione.. il problema lo risolvi..

    Saluti...
  • Re: ByteBuffer e .toString()

    C:\\Documents and Settings\\Dragonn.GIANGI\\Desktop\\LeggiFile.java:62: inconvertible types
    found : java.nio.CharBuffer
    required: java.lang.String
    st.nome = (String) buffer.asCharBuffer();
    ^
    1 error

    Process completed.

    non va con String maiuscolo

    senti siccome studio java da 1 mese mi potresti dire cosa dovrei studiare per poter creare questa funzione?

    scusa il disturbo ma sto impazzendo da 1 settimana

    EDIT : Scusami intel anzichè rispondere qui ti ho mandato un mp per sbaglio
  • Re: ByteBuffer e .toString()

    Ciao.. ma che classe utilizzi per leggere il contenuto del file??... perchè nn provi la classe scanner??.. in internet trovi tutta la documentazione opportuna per usarla..

    Saluti...
  • Re: ByteBuffer e .toString()

    Ciao grazie per l'aiuto che mi stai dando
    ho provato ad utilizzare con l'util Scanner
    praticamente ora ho risolto parzialmente il problema :
    mentre prima stampava
    nome= nome + classe + eta
    classe= classe
    eta = eta

    ora visualizza cosi

    C:\\Documents and Settings\\Dragonn.GIANGI\\Desktop>java LeggiFile
    Nome: gianluca
    ?
    Classe: 4
    eta: 17

    non riesco a capire quel punto interrogativo
    da dove esce.

    Grazie ancora per l'aiuto
  • Re: ByteBuffer e .toString()

    Ciao.. se il \"?\" non è dentro al file.. deve essere per forza una println che fai tu da qualche parte nel codice e che magari ti sei dimenticato di toglierla.. prova a cercarla.. e poi fammi sapere...

    Saluti...
  • Re: ByteBuffer e .toString()

    Ciao scusa se scoccio ancora, ma purtroppo lo scanner in realtà nn ha risolto il problema avevo provato con una sola stringa + un numero ecco a cosa era dovuto quel ?
    se metto due stringhe ho lo stesso problema del .toString();
    ho fatto una ricerca ed ho scoperto che :
    FUNCTION ToString ( ) AS String

    Returns the full name of a font as a description string.

    This string is a concatenation of all the font properties separated by commas.

    Esempio

    PRINT Application.Font.ToString()
    Bitstream Vera Sans,10

    cmq questo è il codice completo



    cosa posso fare?
    grazie per l'aiuto



    P.s per aprire i link copia e incolla sul browser se no nn lo apre
Devi accedere o registrarti per scrivere nel forum
8 risposte