import java.io.*;
public class BinaerDatenManipulieren {
public static void main(String[] args) throws IOException {
byte [] b = new byte[14720];
String dateiLesen = "AbbWurfparabel.jpg";
FileInputStream fiStream = new FileInputStream(dateiLesen);
DataInputStream diStream = new DataInputStream(fiStream);
System.out.println(diStream.read(b));
diStream.close();
b[60] =-126;
b[1060]= 126;
b[1400]=-112;
String dateiSchreiben = "AbbWurfparabel_new.jpg";
FileOutputStream foStream = new FileOutputStream(dateiSchreiben);
DataOutputStream doStream = new DataOutputStream(foStream);
doStream.write(b);
doStream.flush();
doStream.close();
}
}
Aufgabe zu diesem Code:
Verändern Sie den Quellcode so, dass die Dateibezeichner des ursprünglichen und des neuen Bildes als Kommandozeilenparameter beim Programmaufruf übergeben werden. Testen Sie das Programm mit verschiedenen Bildern und verändern Sie dabei im Quellcode ganz willkürlich beliebige Bytes.
Verstehe ich richtig, dass ich mithilfe einer Methode einen Dateinamen eines beliebigen Bildes einlesen soll und das an die String Variable dateiLesen übergeben soll?
Muss das Bild zwingend im selben Ordner liegen oder ist das auch mithilfe von Pfadangabe über die Konsoleneingabe möglich?
Verstehe ich richtig, dass ich mithilfe einer Methode einen Dateinamen eines beliebigen Bildes einlesen soll und das an die String Variable dateiLesen übergeben soll?
Nicht ganz, ein Kommandozeilenparameter ist eine Anzahl von Zeichen, die beim Programmaufruf uebergeben wird, also bevor das Programm laeuft und nicht erst zur Laufzeit. Die Parameter werden einfach hinter den Programmaufruf geschrieben.
Muss das Bild zwingend im selben Ordner liegen oder ist das auch mithilfe von Pfadangabe über die Konsoleneingabe möglich?
Nicht ganz, ein Kommandozeilenparameter ist eine Anzahl von Zeichen, die beim Programmaufruf uebergeben wird, also bevor das Programm laeuft und nicht erst zur Laufzeit. Die Parameter werden einfach hinter den Programmaufruf geschrieben.
Eine Kommandozeile gibt es nicht nur bei Linux, sondern bei allen Betriebssystemen und das wird auch noch eine Weile so bleiben.
Gerade als (angehender) Informatiker man sich ein wenig damit auskennen.
Nein, es sind keine Variablen, das sind Werte die an das Programm weitergereicht werden.
In Java kann man sich die Werte zB aus dem String[] Parameter der main Methode rausfischen. Jedes Argument ein Arrayeintrag.
Also "Befehle", die ich bspw. in MS-Dos eingeben muss, um eine Reaktion zu erhalten?
Wie sieht das jetzt im konkrete Fall meiner Aufagabenstellung aus? Wie ändere ich den obigen Quellcode, dass der Name der beiden Bilder vor der Laufzeit übergeben werden?