Avatar billede evilfish Nybegynder
28. september 2006 - 15:03 Der er 6 kommentarer og
1 løsning

Decode 217 til byte

Hej eksperter

Jeg er ved at sende bytes over netværket via strings, som faktisk kører udemærket. Men når den sender byte 217 sker der en fejl jeg fatter hat af. Den laver en numberformatExeption. Men 217 i såvidt min overbevisning en gyldig byte størrelse. Men det melder den fejl på. Her er kode der laver strengen om til byte og der hvor fejlen intræffer:

message = in.readUTF(); // hent besked
int x = Integer.decode(message); // dekod til INT
while(x != -1) // Kontroller at der statid er bytes
{
    Byte bMessage = Byte.decode(message); // Decode til byte <-- Her kan 217 ikke laves om til byte
    fout.write(bMessage.byteValue()); // Skriv byte til fil
    out.writeUTF("next");  // Spørg efter næste
    out.flush();
    message = in.readUTF(); // Hent besked
    x = Integer.decode(message); // Dekod til INT
}System.out.println("File " + file.getName() + " recieved succesfully");
Avatar billede erikjacobsen Ekspert
28. september 2006 - 15:48 #1
Joh, men en Byte går jo kun til 127 - den er med fortegn
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Byte.html
Avatar billede evilfish Nybegynder
28. september 2006 - 19:57 #2
Er det muligt at få byte til at konvertere til et unsinged?
Avatar billede evilfish Nybegynder
28. september 2006 - 20:18 #3
Lige meget - Fandt en løsning
Avatar billede hacked Nybegynder
30. september 2006 - 06:21 #4
Fortæl fortæl måske er der andre der har samme problem :)
Avatar billede evilfish Nybegynder
30. september 2006 - 09:46 #5
fout er en FileOutputStream hvilket godt kan bruge en Int værdi. Så jeg smed bare en Int ind istedet for:

message = in.readUTF(); // hent besked
int x = Integer.decode(message); // dekod til INT
while(x != -1) // Kontroller at der statid er bytes
{
      //Byte bMessage = Byte.decode(message); // Decode til byte
      fout.write(x); // Skriv byte til fil
      out.writeUTF("next");  // Spørg efter næste
      out.flush();
      message = in.readUTF(); // Hent besked
      x = Integer.decode(message); // Dekod til INT
}
System.out.println("File " + file.getName() + " recieved succesfully");
fout.close();

Anyway erik, smid et svar. Din kommentar hjælpe mig alligevel til at finde løsningen.
Avatar billede erikjacobsen Ekspert
30. september 2006 - 10:49 #6
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede evilfish Nybegynder
30. september 2006 - 10:56 #7
ok - Tak for hjælpen alligevel :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester