Bitweiser Dateivergleich

HansWM

Grünschnabel
Es sollen zwei Dateien bitweise auf Unterschiede untersucht werden. Eine Datei wurde über Funk übertragen. Die Unterschiede bzw. Bitfehler sollen nach Einzelbitfehlern, Doppelbitfehlern, Dreifachbitfehlern usw. geordnet gezählt werden (Fehlerkorrekturverfahren). Der Typ BitSet wäre wahrscheinlich das passende. Kann ich Dateien als Bitfolge einlesen ? FileInputStream liefert einen Array of Bytes.

Danke
 
Java:
package de.tutorials;

import java.io.FileInputStream;
import java.util.BitSet;

public class BitSetDemo {
	private final static int MASK = 128;
	BitSetDemo() throws Exception {
		int b;
		BitSet bitSet = new BitSet();
		int index = 0;
		FileInputStream in = new FileInputStream("demo.txt");
		while ((b=in.read()) != -1) 
			// Für alle 8 bits des gelesenen Bytes
			for (int i = 0; i < 8 ; i++){
				// Prüfe ob das höchstwertige Bit gesetzt ist und schreibe es an Stelle Index in das Bitset 
				if((b & MASK) == MASK)
					bitSet.set(index);
				index ++;
				// Bitshift um 1 bit nach links
				b <<= 1;
			}
		
		System.out.println(bitSet);
		System.out.println(bitSet.length()/8);
			
	}
	public static void main(String[] args) throws Exception {
		new BitSetDemo();

	}

}
 
Zuletzt bearbeitet:
Also anders als jedes Byte in einen entsprechenden Teil des Bitsets zu konvertieren geht es anscheinend nicht. Bei der Arbeit mit Bytes ergibt sich das Problem der Übergänge von einem Byte zum anderen beim Durchsuchen der Bitfolge. Schönen Dank Imago.
 
Zurück