Bits in Textdatei und zurück

Status
Nicht offen für weitere Antworten.

Psypsy

Mitglied
Moin moin,

ich wollte mich seit langem mal wieder mit Java beschäftigen.
Jetzt habe ich eine Idee und wollte mal nach ein paar Anregungen und Möglicheiten Fragen wie man das am besten umsetzt.

Es geht um Datenverarbeitung: einlesen / verarbeiten / schreiben.

Mein Ziel:
Ich möchte eine Beliebige Datei ( pdf, txt, exe, mp3, etc.) einlesen und die folge von Bits in einer txt Datei schreiben. Diese dann nach belieben verändern also Verschlüsseln (mir geht es in erster Linie ums einlesen und schreiben darum bin ich nicht in der Verschlüsselungs Abteilung) dann wenn ich es entschlüsselt habe wieder als Ursprungsdatei auf die Festplatte schreiben.

Ich habe schon ein wenig dannach gesucht aber immer nur gefunden das Java nur mit bytes arbeitet. Es muss doch aber eine Möglichkeit geben auch mit den Bits zu arbeiten, entweder die Bits direkt einlesen was glaube ich nicht geht oder halt die Bytes einlesen und dann so eine art vergleich "if bit == true write 1".
Wobei ich grad nicht weiß ob 0 = true oder 0 = false ist und das ganze dann in einer txt Datei und den umgekehrten weg genauso " if char == 1 set bit true" das dann in die Byte einfügen und auf die Platte kopieren.
ich hoffe Ihr könnt mi weiterhelfen, ich habe grad kein plan wie ich das am beten umsetzen soll.


Mit freundlichen Grüßen

PsyPsy
 
Meines Wissens ist in Java und in Dateien die kleinste Einheit ein byte. (Beim boolean bin ich mir nicht so sicher, der belegte Speicherplatz hängt glaube ich von der JVM ab)
Warum willst Du einzelne bits lesen, abgesehen davon, dass es sowas in Java nicht gibt?
 
Aber es besteht aus Nullen und Einsen das Byte oder aus true and false wie du willst.
Ich brauche auch nicht das Bit gespeichert sondern etwas was ein Bit repräsentiert, sprich 0 & 1 von mir aus auch x & y.
Und es geht mir ja nicht um die JVM sondern um irgendwelche Dateien die auf einer Festplatte gespeichert sind und da kommt glaube ich eher das Betriebsystem zum tragen.
Diese Daten will ich auslesen und da ist der kleinste Wert ein Bit. Eine bestimmte Anzahl an Bits ergibt ein Byte, diese ist glaube ich nicht immer gleich.
Und wenn es keine Bits in Java gib wofür sind dann die Bitoperatoren da? (Dies sollte nicht Altklug wirken sondern eine Frage darstellen)
Warum ich das will . . . . .
Weil ich es möchte!
Nein, zum einen will ich es machen möchte da mir der Gedanke gekommen ist es so zu machen und zum anderen da ich dann mit den Bits wenn Sie in einer txt Datei stehen machen kann was ich will, besonders irgendwie verschlüsseln.

Aber mein erstes Ziel ist es an die Bits ranzukommen und dann Sie auch wieder auf die Platte zu bekommen, dass dazwischen muss ich mir dann nochmal überlegen.
Also es muss auch nicht unbedingt eine txt Datei sein nur das ich es abspeichern kann dann irgendwann neu aufrufe und aus dem was ich abgespeichert habe die Originaldatei wieder herzustellen kann


Zusammengefasst:
- Bits erkennen und mit Repräsentanten in einer Datei speicher
- Repräsentanten wieder zu Bits machen und die Originaldatei wiederherstellen

Mit freundliche grüßen

PsyPsy
 
Eine bestimmte Anzahl an Bits ergibt ein Byte, diese ist glaube ich nicht immer gleich.
genau 8 Bit ergeben ein Byte
Und wenn es keine Bits in Java gib wofür sind dann die Bitoperatoren da? (Dies sollte nicht Altklug wirken sondern eine Frage darstellen)
Die Bitoperationen wirken zwar auf "Bitebene" werden aber auf bytes oder ints angewendet.
- Bits erkennen und mit Repräsentanten in einer Datei speicher
Mir ist gerade nichts blöderes eingefallen, aber so könnte man die bits eines bytes als String darstellen bzw. in eine Textdatei speichern.
Java:
byte b = 5;
System.out.println(Integer.toBinaryString(b | 0x100).substring(2));
umgekehrt könnte man es dann so machen:
Java:
byte b = Byte.parseByte("00000101", 2);
System.out.println(b);
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Zurück
Oben