Hi! Ich soll zwei Decorator-Klassen für java.io schreiben:
1) einen Reading-Decorator, der eine Eingabe mit der Caesar-Verschlüsselung verschlüsselt, und
2) einen Writing-Decorator, der einen Text in Großbuchstaben umwandelt.
Hab mich zuerst mal an das Reading gemacht und versucht, die read-Methoden aus der FilterInputStream-Klasse zu überschreiben. Leider funktioniert das noch nicht, der Stream wird unverändert ausgegeben.
Und was das Writing angeht, scheitere ich am Überschreiben der write-Methoden aus OutputStream
Kann mir jemand helfen? Vielen Dank schon mal!
1) einen Reading-Decorator, der eine Eingabe mit der Caesar-Verschlüsselung verschlüsselt, und
2) einen Writing-Decorator, der einen Text in Großbuchstaben umwandelt.
Hab mich zuerst mal an das Reading gemacht und versucht, die read-Methoden aus der FilterInputStream-Klasse zu überschreiben. Leider funktioniert das noch nicht, der Stream wird unverändert ausgegeben.
Und was das Writing angeht, scheitere ich am Überschreiben der write-Methoden aus OutputStream
Kann mir jemand helfen? Vielen Dank schon mal!
Java:
import java.io.*;
public class CryptInputStream extends FilterInputStream {
public CryptInputStream(InputStream in) {
super(in);
}
public String read(String input) throws IOException {
int c = super.read();
char s; int i;
String output = new String();
int len = input.length();
for (i = 0; i < len; i++) {
s = input.charAt(i);
if (s == ' ');
else {
output = output + (char)((s - 65 + c)%26+65);
}
}
return output;
} }
Java:
import java.io.*;
public class UpperCaseOutputStream extends OutputStream {
public UpperCaseOutputStream(OutputStream out) {
super(out);
}
public void write(byte b[], int off, int len) throws IOException {
for (int i = 0 ; i < len ; i++) {
b[i] = (byte)Character.toUpperCase((char)b[i]);
write(b[off + i]);
} }
}