Hi,
ich habe eine grundlegende Frage zu der Methode read() bzw. read(byte[]) eines
FileInputStreams.
Verstehe ich es richtig, dass eine read(byte[]) Methode deshalb effizienter
ist, weil man mit dieser (und sinnvoller Puffergröße) weniger Zugriffe aus
den InputStream hat als mit einer read() Methode, welche
quasi immer Stück für Stück, also byte für byte, ausliest?
Ich hätte zudem noch eine andere Frage.... Eventuell ist
es Zeit schlafen zu gehen oder ein Bierchen zu trinken, aber ich verstehe folgendes nicht:
Ich verstehe nun nicht, warum ich nicht gezwungen bin,
im Konstruktorkopf nach den Parametern ein "throws IllegalArgumentException" hinzuschreiben,
oder das ganze gleiche mit try und catch zu machen?
Liegt das daran, weil IllegalArgumentException eine UncheckedException ist und es
quasi eine Fehlerart ist, die man verhindern kann aus Programmiersicht? Und falls ja, wie?
Einfach prüfen ob nenner==0 und dann...?Falls ja, dann eine Meldung an den Benutzer geben?
Also doch mit try und catch? und im Catch fall eine Antwort an den Benutzer, korrekt?
ich habe eine grundlegende Frage zu der Methode read() bzw. read(byte[]) eines
FileInputStreams.
Verstehe ich es richtig, dass eine read(byte[]) Methode deshalb effizienter
ist, weil man mit dieser (und sinnvoller Puffergröße) weniger Zugriffe aus
den InputStream hat als mit einer read() Methode, welche
quasi immer Stück für Stück, also byte für byte, ausliest?
Ich hätte zudem noch eine andere Frage.... Eventuell ist
es Zeit schlafen zu gehen oder ein Bierchen zu trinken, aber ich verstehe folgendes nicht:
Java:
public class Bruch {
private int zaehler;
private int nenner;
private final String BRUCHSTRICH = "/";
public Bruch(int zaehler, int nenner) {
if(nenner==0) {
throw new IllegalArgumentException("Division durch 0 nicht erlaubt.");
} else {
//(...)
}
}
//(...) Andere Methoden
}
Ich verstehe nun nicht, warum ich nicht gezwungen bin,
im Konstruktorkopf nach den Parametern ein "throws IllegalArgumentException" hinzuschreiben,
oder das ganze gleiche mit try und catch zu machen?
Liegt das daran, weil IllegalArgumentException eine UncheckedException ist und es
quasi eine Fehlerart ist, die man verhindern kann aus Programmiersicht? Und falls ja, wie?
Einfach prüfen ob nenner==0 und dann...?Falls ja, dann eine Meldung an den Benutzer geben?
Also doch mit try und catch? und im Catch fall eine Antwort an den Benutzer, korrekt?