/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Læse enkelte bits
Fra : Martin Ehmsen


Dato : 28-10-01 18:19

Hej...

Jeg sidder netop med et problem, som ville blive noget lettere hvis det
var muligt at læse/skrive enkelte bits fra/til en fil.
Men så vidt jeg ved så er det kun muligt at læse enkelte bytes, men det
kunne jo være...?

Mvh.
Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

 
 
Brian Matzon (28-10-2001)
Kommentar
Fra : Brian Matzon


Dato : 28-10-01 20:41

"Martin Ehmsen" <thames@get2net.dk> wrote in message
news:9rhejj$dov$1@sunsite.dk...
> Hej...
>
> Jeg sidder netop med et problem, som ville blive noget lettere hvis det
> var muligt at læse/skrive enkelte bits fra/til en fil.
> Men så vidt jeg ved så er det kun muligt at læse enkelte bytes, men det
> kunne jo være...?

Nope - så du må igang med lidt bitshifting...



Martin Ehmsen (28-10-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 28-10-01 22:52

Brian Matzon wrote:

> "Martin Ehmsen" <thames@get2net.dk> wrote in message
> news:9rhejj$dov$1@sunsite.dk...
>> Hej...
>>
>> Jeg sidder netop med et problem, som ville blive noget lettere hvis
det
>> var muligt at læse/skrive enkelte bits fra/til en fil.
>> Men så vidt jeg ved så er det kun muligt at læse enkelte bytes, men
det
>> kunne jo være...?
>
> Nope - så du må igang med lidt bitshifting...

Ja, det er lidt træls ikke...
Jeg kan ikke forstå hvorfor det ikke er muligt, er der mon en grund til
at Sun ikke synes det skal være muligt??
Ikke engang (så vidt jeg kan se) i den snart kommende version 1.4
bliver det muligt, selv om I/O-delen er totalt omskrevet/forbedret.

Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Lars Dam (28-10-2001)
Kommentar
Fra : Lars Dam


Dato : 28-10-01 22:56

On Sun, 28 Oct 2001 22:52:11 +0100, Martin Ehmsen <thames@get2net.dk>
wrote:

>Brian Matzon wrote:
>
>> "Martin Ehmsen" <thames@get2net.dk> wrote in message
>> news:9rhejj$dov$1@sunsite.dk...
>>> Hej...
>>>
>>> Jeg sidder netop med et problem, som ville blive noget lettere hvis
>det
>>> var muligt at læse/skrive enkelte bits fra/til en fil.
>>
>> Nope - så du må igang med lidt bitshifting...
>Ja, det er lidt træls ikke...

Det er da ikke så slemt... Du laver da bare din egen
bitreadstream/bitwritestream som bygger oven på en standard iostream?
Så bare shift en bit een ad gangen, og når du har hele byten, så gem
den, og start forfram.

>Martin Ehmsen

vh. ld


Martin Ehmsen (28-10-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 28-10-01 23:08

Lars Dam wrote:
> Det er da ikke så slemt... Du laver da bare din egen
> bitreadstream/bitwritestream som bygger oven på en standard iostream?
> Så bare shift en bit een ad gangen, og når du har hele byten, så gem
> den, og start forfram.

Nej overhovedet ikke, men det er at give opgaven for meget kredit
Men jeg kunne selvfølgelig gøre det for min egen skyld og lægge den i
bunken af værktøjsklasser.

Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Martin Moller Peders~ (28-10-2001)
Kommentar
Fra : Martin Moller Peders~


Dato : 28-10-01 23:38

In <okvottk05dm8lvk3n7m4lkb8tcb3k7jf2c@4ax.com> Lars Dam <larsdamXXspamXXprotectionXX@post2.tele.dk> writes:

>On Sun, 28 Oct 2001 22:52:11 +0100, Martin Ehmsen <thames@get2net.dk>
>wrote:

>>Brian Matzon wrote:
>>
>>> "Martin Ehmsen" <thames@get2net.dk> wrote in message
>>> news:9rhejj$dov$1@sunsite.dk...
>>>> Hej...
>>>>
>>>> Jeg sidder netop med et problem, som ville blive noget lettere hvis
>>det
>>>> var muligt at læse/skrive enkelte bits fra/til en fil.
>>>
>>> Nope - så du må igang med lidt bitshifting...
>>Ja, det er lidt træls ikke...

>Det er da ikke så slemt... Du laver da bare din egen
>bitreadstream/bitwritestream som bygger oven på en standard iostream?
>Så bare shift en bit een ad gangen, og når du har hele byten, så gem
>den, og start forfram.

Eller finder en gammel Dr. Dobbs artikel om samme emne.
Maaske 3 aar gammel, men jeg husker det ikke praecist.

Mvh
Martin


Ulrik Magnusson (28-10-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 28-10-01 22:54



Martin Ehmsen wrote:

> Jeg sidder netop med et problem, som ville blive noget lettere hvis det
> var muligt at læse/skrive enkelte bits fra/til en fil.
> Men så vidt jeg ved så er det kun muligt at læse enkelte bytes, men det
> kunne jo være...?

Du kan da evt. lade dig inspirere eller bygge videre på følgende
(ingen garantier og meget lidt testet):

class BitStreamWriter
{
private int by = 0;
private int toGo = 7;
private java.io.DataOutputStream writer;

public BitStreamWriter( java.io.File file ) throws java.io.IOException
{
writer = new java.io.DataOutputStream( new java.io.FileOutputStream(file)
);
}

public void write( boolean b ) throws java.io.IOException
{
if( b )
{
by |= (1 << toGo);
}
if( toGo == 0 )
{
write();
}
else
{
--toGo;
}
}

private void write() throws java.io.IOException
{
toGo = 7;
writer.write( by );
by = 0;
}

public void flush() throws java.io.IOException
{
write();
writer.flush();
}
}
class BitStreamReader
{
private int toGo = 7;
private int b;
private java.io.DataInputStream reader;

public BitStreamReader( java.io.File file ) throws java.io.IOException
{
reader = new java.io.DataInputStream( new java.io.FileInputStream(file)
);
}

public boolean read() throws java.io.IOException
{
if( toGo == 7 )
{
b = reader.read();
}
boolean res = (b & (1 << toGo)) == (1 << toGo);
toGo = toGo == 0? 7: toGo-1;
return res;
}
}

Ulrik Magnusson


Martin Ehmsen (28-10-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 28-10-01 23:10

Ulrik Magnusson wrote:
<brugbar kode>

Takker...

Martin Ehmsen

--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste