ich versuche ein proggramm zu schreiben mit das eine Datei in ein BitSet Umwandelt
aber die ausgabe ist nicht so wie sie sein sollte weis jemand woran das liegen könnte?
aber die ausgabe ist nicht so wie sie sein sollte weis jemand woran das liegen könnte?
Code:
package dshack;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.*;
import java.math.*;
public class sts{
//metode die ein byte in ein boolean Array umwandeln soll
public static boolean[] btob(byte derbyte){
boolean[] b=new boolean[8];
for(int i=0;i<8;i++){
b[i]=((derbyte & (1 << i)) == 1);
}
return b;
}
//metode die ein byte Array in ein bit set umwandeln soll
public static BitSet batbs(byte[] b){
int i2=0;
BitSet bs=new BitSet();
for(int i=0;i<b.length;i++){
boolean[] bl=btob(b[i]);
for(int i1=0;i1<bl.length;i1++){
bs.set(i2,bl[i1]);
i2++;
}
}
return bs;
}
public static ByteArrayOutputStream bao;
//metode die ein byte Array aus einer Datei lesen soll
public static byte[] readb(File f) {
try {
FileInputStream in = new FileInputStream(f);
bao=new ByteArrayOutputStream();
byte[] buf = new byte[4096];
int len;
while ((len = in.read(buf)) > 0) {
bao.write(buf, 0, len);
}
bao.close();
in.close();
} catch (IOException e) {
System.err.println(e.toString());
}
return bao.toByteArray();
}
//soll ein BitSet als eine reihe von 0en und 1en ausgeben
public static void prbs(BitSet bs){
for(int i=0;i<bs.length();i++){
if(bs.get(i)){
System.out.print(1);
}
else{
System.out.print(0);
}
}
}
public static BitSet retb() throws Exception{
Frame ff=new Frame();
ff.setVisible(true);
JFileChooser chooser = new JFileChooser();
chooser. setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.showOpenDialog(ff);
File fin=chooser.getSelectedFile();
ff.dispose();
return batbs(readb(fin));
}
public static void main(String[] args)throws Exception{
prbs(retb());
}
}