Bytes speichern

Status
Nicht offen für weitere Antworten.

freak4fun

Mitglied
Code:
package test;

import java.io.*;

public class Main {

    byte[] bBlocks; // Bytearray
    String binary; // Bits als String
    String sFileName = "C:\\test.dat"; // Pfad der Testdatei
        
    public void test(){ // Bits (String) -> Bits (Byte)
        binary = "10011011" + "10100011" + "10110111" + "11100000";
        
        // Bytearray Länge setzen
        int count = 0;
        if (binary.length() % 8 == 0){
            count = binary.length() / 8;
        } else {
            count = Math.round(binary.length() / 8) + 1;
        }
        
        // Umwandlung
        bBlocks = new byte[count];
        byte maske = 0;
        int j = 0;
        for (int i = 0; i < binary.length(); i++){
            maske = (byte)(1 & Integer.parseInt("" + binary.charAt(i)));
            bBlocks[j] = (byte)(bBlocks[j] | maske);
            if ((i != 0) && ((i + 1) % 8 == 0)){ 
                j++;
            } else {
                if (i != binary.length() - 1)
                    bBlocks[j] = (byte)(bBlocks[j] << 1);
            }
            maske = 0;
        }
        
        for (int t = 0; t < count; t++){
            System.out.println("Block " + t + ": " + (byte)bBlocks[t]);
        }
    }
    
    public void saveToDatFile() throws IOException{
        // Aufbau: 4 Byte (Integer) - Anzahl der gesetzten Bits
        //         weitere Bytes    - Datenbits 
        try{
            BufferedWriter output = new BufferedWriter (new OutputStreamWriter(new FileOutputStream(sFileName)), 1000);
            output.write(binary.length());
            System.out.println("Speichere: " + binary.length());
            for (int i = 0; i < bBlocks.length; i++){
                System.out.println("Speichere: " + bBlocks[i]);
                output.write(bBlocks[i]);
            }
            output.close() ;
        } catch (Exception e){
            System.out.println(e);
            System.out.println("----------------------Exception laden/schreiben!");
            System.exit(1);
        }
    }
    
  public void loadFromDatFile() throws IOException{
    try{
        BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream(sFileName)), 1000);
        int bLength = 0;
        
        bLength = input.read();
        System.out.println("bLength: " +  bLength);
        
        int count = 0;
        if (bLength % 8 == 0){
            count = bLength / 8;
        } else {
            count = Math.round(bLength / 8) + 1;
        }
        char[] test = new char[count];
        
        while(input.ready()){
            input.read(test);
        }
        
        for (int i = 0; i < count; i++){
            bBlocks[i] = (byte)test[i];
            System.out.println("Line " + (i) + ": " + test[i] + " " +  bBlocks[i]);
        }    
        input.close() ;
    } catch (Exception e){
        System.out.println(e);
        System.out.println("----------------------Exception laden/schreiben!");
        System.exit(1);
    }
  }
    
  public static void main(String[] args) throws IOException{
      Main main = new Main();
        
      main.test();
      main.saveToDatFile();
      main.loadFromDatFile();             
  }
}
Ich erhalte als Ausgabe:
Block 0: -101
Block 1: -93
Block 2: -73
Block 3: -32
Speichere: 32
Speichere: -101
Speichere: -93
Speichere: -73
Speichere: -32
bLength: 32
Line 0: ? 63
Line 1: ? 63
Line 2: ? 63
Line 3: ? 63
Wieso sind das lauter ? und da steht 63? Ich habe keine Ahnung.

Grüße, f4f
 

Murray

Top Contributor
Dieses Konstrukt
Code:
        while(input.ready()){
            input.read(test);
        }
besagt in etwa: solange es Daten zu lesen gibt, überschreibe den Anfang des Arrays test mit den gerade verfügbaren Daten.

Das ist also kein Code, der die Daten komplett im Array ablegt.
 

freak4fun

Mitglied
Murray hat gesagt.:
Dieses Konstrukt
Code:
while(input.ready()){
            input.read(test);
        }
besagt in etwa: solange es Daten zu lesen gibt, überschreibe den Anfang des Arrays test mit den gerade verfügbaren Daten.

Das ist also kein Code, der die Daten komplett im Array ablegt.
Das mag ja sein, aber in der Datei steht schon: "203F3F3F3F". Also ist es erst mal egal. :( Das schau ich mir dann später an. ;)
Wieso schreibt er nicht die Daten in die Datei die ich da rein haben will?! :?
 

Murray

Top Contributor
Wie, das ist egal?? Der Code führt zu beliebigen Überschreibern; man kann vorher nicht wissen, was ready() liefern wird (irgendwas zwischen ncihst und der ganzen Datei)
 

freak4fun

Mitglied
freak4fun hat gesagt.:
Also ist es erst mal egal. :( Das schau ich mir dann später an. ;)
Murray hat gesagt.:
Wie, das ist egal?? Der Code führt zu beliebigen Überschreibern; man kann vorher nicht wissen, was ready() liefern wird (irgendwas zwischen ncihst und der ganzen Datei)
Ich habe dazu noch mehr geschrieben. Kannst du mir sagen warum wenn das Byte mit 1 beginnt, da immer nur ? und 63 raus kommt? Also bei zB: "10000000" "11111111". :)

Edit: Kann es daran liegen das ich die falschen Streams benutze? ???:L
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Zahlen als Bytes in eine Datei speichern, daraus wieder auslesen Java Basics - Anfänger-Themen 2
R Input/Output verschiedene Datentypen als Bytes in Datei speichern Java Basics - Anfänger-Themen 15
M Bytes inkrementieren Java Basics - Anfänger-Themen 2
F ByteBuffer Fehler bei den letzten 2 Bytes Java Basics - Anfänger-Themen 1
P bytes aus einem InputStream zählen Java Basics - Anfänger-Themen 2
A Char Bytes Umwandlung und Darstellung Java Basics - Anfänger-Themen 3
X Datentypen Int oder String in Bits/Bytes umwandeln Java Basics - Anfänger-Themen 10
F Datei einlesen ( Bytes ) Java Basics - Anfänger-Themen 12
L Bytes zu String, String zu Bytes Java Basics - Anfänger-Themen 11
F code Optimierung (Bin-Hex-Bytes) Java Basics - Anfänger-Themen 9
2 Bestimmte Anzahl von Bytes lesen und als string ausgeben? Java Basics - Anfänger-Themen 3
A begrenzte Datenstruktur zur Speicherung von bytes Java Basics - Anfänger-Themen 6
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
I &-Zeichen und Bytes und co Java Basics - Anfänger-Themen 4
D Bytes für WAV Format anpassen Java Basics - Anfänger-Themen 5
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
P Hochgeladene Bytes anzeigen Java Basics - Anfänger-Themen 15
T Bytearray: immer 4 Bytes herrauskopieren, bis fertig ! Java Basics - Anfänger-Themen 9
N Bytes in einem String Java Basics - Anfänger-Themen 3
M Aus einem Array von "bytes" ein "short" Java Basics - Anfänger-Themen 4
G Array von Bytes in String umwandeln Java Basics - Anfänger-Themen 4
A formatieren long(bytes) -> String Java Basics - Anfänger-Themen 2
D Text-Datei(en) mit der Methode read(bytes[] b) auslesen Java Basics - Anfänger-Themen 4
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
I Historisierung - Alter Wert, Neuer Wert... wie speichern? Java Basics - Anfänger-Themen 44
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
I Liste von Infos von einer eigenen Annotation in Liste speichern Java Basics - Anfänger-Themen 0
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
Marlena Bauer Konsolenausgabe in .txt speichern Java Basics - Anfänger-Themen 6
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
C File speichern Java Basics - Anfänger-Themen 5
D String und char in String speichern Java Basics - Anfänger-Themen 5
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
GermanPie Nachrichten Speichern Java Basics - Anfänger-Themen 2
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Wo Defaultpfad speichern? Java Basics - Anfänger-Themen 2
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
Dimax stream in string[] speichern Java Basics - Anfänger-Themen 6
H Liste speichern. Was lässt sich verbessern? Java Basics - Anfänger-Themen 7
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
H Objekt im Array speichern Java Basics - Anfänger-Themen 2
H Objekt als Attribut speichern Java Basics - Anfänger-Themen 11
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
M JTextField in ArrayList speichern Java Basics - Anfänger-Themen 4
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
S Zweidimensionales Array in ein eindimensionales Array speichern Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
C ResultSet in Array speichern Java Basics - Anfänger-Themen 5
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
J Kann man files in einer Klasse speichern. Java Basics - Anfänger-Themen 2
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
I Datei in Programm speichern Java Basics - Anfänger-Themen 3
A .txt-Datei mit Java speichern Java Basics - Anfänger-Themen 2
M Speichern unter. Java Basics - Anfänger-Themen 11
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Objekt aus Textdatei in ArrayList speichern Java Basics - Anfänger-Themen 4
L Kommandozeileneinträge in Array speichern Java Basics - Anfänger-Themen 4
B HTML Code in XML speichern Java Basics - Anfänger-Themen 3
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben