InputStream erstellen

KaRaKaToS

Mitglied
Hallo
Für mein Programm muss ich checken ob ein File die endung .gz hat oder nicht wenn Ja sollte es denn GZIPInputStream benutzen wenn nicht den InputStreamReader.


Code:
Java:
private InputStreamReader getInputStream(String inFileName){

	if (inFileName.endsWith(".gz")) {
	InputStream InputStream = new GZIPInputStream(new FileInputStream(inFileName));
			
	} 
	
	else {
	InputStreamReader inputStream = new InputStreamReader(new FileInputStream(inFileName));

	}
	return inputStream();
}
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
Frage vergessen?
Variablen, die nach einem if/else noch benötigt werden, davor deklarieren

was du im Falle von gz machen willst musst du aber selber wissen, ein InputStream ist kein InputStreamReader,
aus gz mit einem Reader zu lesen kann nur ins Chaos führen

-----

'inputStream' ist für einen Reader, auch InputStreamReader, ein ungeeigneter Variablenname,
genauso ist die Methode ungünstig benannt, Name passt nicht zum Rückgabetyp

die Hauptunterscheidung liegt zwischen Stream vs Reader,
alles ist entweder ein Stream (bytes) oder ein Reader (chars)
 
T

TryToHelp

Gast
Für solche String opperationen die du da benutzen willst, gibt es den schönen split befehl, mit diesem kannst du deinen string (dateinamen) z.b. am punkt trennen. Als resultat dieses splittes, bekommst du ein Array aus Strings, jeder eintrag in deinem Array ist der teil des Strings getrennt an dem punkt.
z.B.
mydatei.txt ->
array[0]=mydatai
array[1]=txt
somit müsstest du dir nun den letzten String in deinem Array anschauen
 

d3rbastl3r

Bekanntes Mitglied
Für solche String opperationen die du da benutzen willst, gibt es den schönen split befehl, mit diesem kannst du deinen string (dateinamen) z.b. am punkt trennen. Als resultat dieses splittes, bekommst du ein Array aus Strings, jeder eintrag in deinem Array ist der teil des Strings getrennt an dem punkt.
z.B.
mydatei.txt ->
array[0]=mydatai
array[1]=txt
somit müsstest du dir nun den letzten String in deinem Array anschauen

Was ist gegen die endsWith-Variante anzuwenden xD?


Hallo
Für mein Programm muss ich checken ob ein File die endung .gz hat oder nicht wenn Ja sollte es denn GZIPInputStream benutzen wenn nicht den InputStreamReader.


Code:
Java:
private InputStream getInputStream(String inFileName){  // <- Kein Reader??
        InputStream inputStream; // <- Deklaration hier

	if (inFileName.endsWith(".gz")) {
	    inputStream = new GZIPInputStream(new FileInputStream(inFileName));
			
	} 
	
	else {
	    inputStream = new InputStream(new FileInputStream(inFileName)); // <- Kein Reader??

	}
	return inputStream; // <- Keine Klammer
}
 
Zuletzt bearbeitet:
N

nillehammer

Gast
Gegen die endsWith-Variante ist nichts einzuwenden. Hätte ich genauso gemacht.

Aber SlaterB's Einwand ist wichtig. Eine Gzip-Komprimierte Datei kannst Du nicht mit einem InputStreamReader bearbeiten, weil:
1. Sie enthält Binärdaten, Reader sind für textuelle Daten
2. Sie könnte mehrere Einträge enthalten. Eine einfache Datei (Dein else-Zweig) nur einen.

Die Behandlung der beiden Fälle innerhalb einer Methode ist so nicht zu machen.

[EDIT]Ich seh grad, du hast Deinen Code im Zitat bereits geändert. Sehr ungeschickt, so fällt das nicht auf. Aber so, wie er jetzt ist, macht er zumindest Sinn.[/EDIT]
[EDIT]
Habe Deinen Code nochmal etwas aufgehübscht:
Java:
private InputStream getInputStream(String inFileName){

    // Zugriffe auf Files immer Puffern
    InputStream inputStream = new BufferedInputStream(new FileInputStream(inFileName));

    if( inFileName.endsWith(".gz") ) {
       return new GZIPInputStream(inputStream);
    }

    // else ist hier unnötig. Wenn if-Zweig betreten wird,
    // wird durch das return die Methode sowieso verlassen.
    // Ich find's so schöner, weil weniger Code. Ist aber
    // Geschmackssache. Gibt auch Leute, die das anders sehen.
    return inputStream;
}
[/EDIT]
[EDIT]
So, mein drittes Edit. So wie der Code jetzt ist, funktioniert er zwar. Du hast aber immernoch das Problem, dass Du eine GZip-Datei anders behandeln musst als eine ganz normale. Man sieht dem returnten InputStream jetzt aber leider nicht mehr an, was seine Quelle ist. Deswegen ist die Fallunterscheidung innerhalb dieser Methode immer noch nicht gut. Das war mein letztes Edit, versprochen. :D
[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R InputStream erstellen, der aus String liest Java Basics - Anfänger-Themen 8
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
berserkerdq2 inputstream und bufferedwirter /outputstream und bufferedwriter Java Basics - Anfänger-Themen 9
T Bluetooth, Inputstream Java Basics - Anfänger-Themen 0
I InputStream beim zweiten Mal fehlerhaft Java Basics - Anfänger-Themen 10
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
B InputStream / OutputStream / PipedOutputStream und managedExecutorService Java Basics - Anfänger-Themen 3
B java.io.OutputStream zu java.io.InputStream konvertieren Java Basics - Anfänger-Themen 18
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
B Konvertieren: Outputstream zu Inputstream Java Basics - Anfänger-Themen 13
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D InputStream parsen und als Bilddatei abspeichern Java Basics - Anfänger-Themen 1
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
T Datentypen InputStream to list of Int (or similar) Java Basics - Anfänger-Themen 4
P bytes aus einem InputStream zählen Java Basics - Anfänger-Themen 2
P InputStream eines Musik-Streams abspielen Java Basics - Anfänger-Themen 2
I Resize Image - Einlesen von InputStream Java Basics - Anfänger-Themen 3
T Input/Output Exception bei einem InputStream Java Basics - Anfänger-Themen 2
W ProcessBuilder InputStream in Array speichern Java Basics - Anfänger-Themen 3
B Input/Output Data / Buffer / File Outstream Inputstream Java Basics - Anfänger-Themen 2
L Webservice soll InputStream übergeben bekommen Java Basics - Anfänger-Themen 7
S Eigener InputStream, Hilfe bei read-Methode Java Basics - Anfänger-Themen 6
C InputStream Java Basics - Anfänger-Themen 2
O Input/Output Fragen zum InputStream Java Basics - Anfänger-Themen 7
E Input/Output Relativer Bild-Pfad für InputStream Java Basics - Anfänger-Themen 5
G Frage zu InputStream? Java Basics - Anfänger-Themen 11
E Socket InputStream "terminiert" nicht Java Basics - Anfänger-Themen 4
E Input/Output Inputstream während der Laufzeit füllen Java Basics - Anfänger-Themen 2
A Frage zu Beispiel eines Dekorierers von InputStream Java Basics - Anfänger-Themen 4
B Input/Output InputStream (JSch) in OutputStream (Blob) überführen Java Basics - Anfänger-Themen 8
P Input/Output InputStream Listener? Java Basics - Anfänger-Themen 7
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
S Input/Output Neuen InputStream System.in setzen Java Basics - Anfänger-Themen 11
A InputStream gibt nur jede 2te Zeile aus Java Basics - Anfänger-Themen 7
J InputStream FTP Java Basics - Anfänger-Themen 8
brunothg Inputstream zu Filechannel Java Basics - Anfänger-Themen 6
K StringWriter/String nach InputStream konvertieren Java Basics - Anfänger-Themen 3
Benji0815 Inputstream aus Konsole in JTextArea Java Basics - Anfänger-Themen 14
A Problem mit InputStream Java Basics - Anfänger-Themen 4
bastiann Kann man Inputstream nur auf ein Zeichen anwenden? Java Basics - Anfänger-Themen 5
U Inputstream.read()/readLine() blockiert immer Java Basics - Anfänger-Themen 18
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
G Kompletten InputStream der Kommandokonsole ausgeben Java Basics - Anfänger-Themen 8
G InputStream aufrufen, ändern und zurück geben Java Basics - Anfänger-Themen 2
W Zeichen ersetzen im InputStream Java Basics - Anfänger-Themen 3
N String vom InputStream in TextArea übertragen Java Basics - Anfänger-Themen 6
A Frage zu Puffergröße bei InputStream Java Basics - Anfänger-Themen 9
G in einem inputstream auf " " abfragen? Java Basics - Anfänger-Themen 3
M Datei speichern mittels InputStream Java Basics - Anfänger-Themen 13
P InputStream in Byte-Array speichern Java Basics - Anfänger-Themen 2
G String in InputStream umwandeln? Java Basics - Anfänger-Themen 8
M Auslesen eines InputStream Java Basics - Anfänger-Themen 4
M Problem mit InputStream Java Basics - Anfänger-Themen 7
S Probleme mit InputStream- Rückgabe Java Basics - Anfänger-Themen 4
I InputStream von Konsole abfangen Java Basics - Anfänger-Themen 6
G InputStream im finally-Block schließen Java Basics - Anfänger-Themen 7
K InputStream? Java Basics - Anfänger-Themen 3
S Sockets and InputStream Java Basics - Anfänger-Themen 2
M InputStream einer Socketverbindung funktioniert nicht Java Basics - Anfänger-Themen 19
M Byte InputStream zu Zeichenformat Unicode bzw String konvert Java Basics - Anfänger-Themen 5
R ENTER in InputStream nicht lesen Java Basics - Anfänger-Themen 4
G InputStream auslesen und zurückschreiben Java Basics - Anfänger-Themen 9
R BufferedReader <-> InputStream Java Basics - Anfänger-Themen 3
R Suche geeignetes InputStream Java Basics - Anfänger-Themen 2
D InputStream -> Image Java Basics - Anfänger-Themen 6
M String zu InputStream/InputSource Java Basics - Anfänger-Themen 2
S Problem mit InputStream / flush() / BufferedReader Java Basics - Anfänger-Themen 19
C Aus ein Image-Objekt einen InputStream generieren? Java Basics - Anfänger-Themen 6
J InputStream in String umwandeln Java Basics - Anfänger-Themen 5
J InputStream ist null Java Basics - Anfänger-Themen 7
P InputStream, BufferedString Java Basics - Anfänger-Themen 3
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben