FileInputStream manipulieren

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Guten Abend,

ich stehe vor einem Problem, bei dem ich keinen Lösungsansatz habe.
Ich lese eine Datei mittels des FileInputStreams aus.

Eine Methode liefert mir dabei einen String zurück, den ich manipuliere.

Nun das Problem: Wie bekomme ich den FileInputStream dazu, den manipulierten String wieder einzulesen? (Der Stream wird im Anschluss noch weiterverwendet.) Ich brauche die Manipulation deswegen, weil ich flexibler auf einige Dateninhalte reagieren möchte.
Eine zweite(temporäre) Datei anzulegen, zu schreiben, wieder einzulesen und im Anschluss zu löschen erscheint mir wenig sinnvoll.

Gibt es diesbezüglich eine elegante Lösung?
 
S

SlaterB

Gast
du kannst einen eigenen FileInputStream anbieten, der im Voraus aus dem anderen Stream liest und erst die bearbeiten bytes oder Strings weitergibt
 
G

Guest

Gast
Wie kann man denn mit einem InputStream aus einem InputStream lesen? Muss man da nicht den Dateinamen angeben?
 
S

SlaterB

Gast
aus einem Inputstream liest man von überall gleich, von einem JFrame aus wie von der main-Methode wie von einem anderen InputStream aus:
stream.readIrgendwas()

du liest vielleicht schon Strings draus und nicht nur Bytes,
ist nicht ganz einfach da wieder Bytes daraus zu machen oder was immer der nächste Empfänger braucht,
aber so allgemein ohne Details läßt sich nicht mehr dazu sagen,

die Daten einlesen aber zwischenspeichern, wenn dann jemand anders wieder read() am eigenen Stream aufruft, dann die gespeicherten und vielleicht veränderten Informationen weitergeben
 

musiKk

Top Contributor
Vielleicht kann man mit gepip(e)ten (argh, denglish) Streams arbeiten. Da entfällt ein gesondertes Zwischenspeichern und man reicht den Kram mit den gewünschten Modifikationen einfach durch.

Hab mal was Kleines gebastelt:
Code:
import java.io.*;

public class Testclass {

	public static void main(String[] args) throws Exception {
		
		FileInputStream fis = new FileInputStream(new File("Testclass.java"));
		
		PipedInputStream pis = new PipedInputStream();
		PipedOutputStream pos = new PipedOutputStream(pis);
		int i = -1;
		while((i = fis.read()) != -1) {
			pos.write(i);
			pos.write(' ');
		}
		fis.close();
		pos.close();
		
		while((i = pis.read()) != -1) {
			System.out.print((char)i);
		}
		
		pis.close();
	
	}
	
}
Da wird halt hinter jedes Zeichen noch ein Leerzeichen gesetzt. Hoffe, das geht wenigstens ein bisschen in die gewünschte Richtung. Ich bin mir allerdings nicht sicher, ob das frühe Schließen des OutputStreams nur funktioniert, weil meine Beispieldatei so klein ist... eigentlich müsste die Pipe dadurch kaputt gehen... Aber ohne das hängts (schließt ja niemand den OutputStream) und das ist ja auch nur ein PoC.

pis out!
 
G

Guest

Gast
Es geht vielmehr um folgendes Problem: Ich lese eine Text-Datei ein mittels FileInputStream, manipuliere den String und möchte mir daraus wieder einen FileInputStream erzeugen. Blos wie kann ich das machen? Wie kann ich sicher gehen, dass die "alten" Daten in dem Stream nicht mehr vorhanden sind.
 

musiKk

Top Contributor
Warum muss es denn unbedingt ein FileInputStream sein? Dazu hat man doch das Interface InputStream, da kann man alles gleich behandeln.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B OutputStream in FileInputStream? Java Basics - Anfänger-Themen 9
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B FileInputStream entpacken und Zeile für Zeile entpacken Java Basics - Anfänger-Themen 1
V FileInputStream - read() Java Basics - Anfänger-Themen 2
D String in FileInputStream umwandeln Java Basics - Anfänger-Themen 2
N FileInputstream und BinaryStream Java Basics - Anfänger-Themen 3
V FileInputStream auf ein swt.Image Java Basics - Anfänger-Themen 6
R FileInputStream findet Datei nicht Java Basics - Anfänger-Themen 5
C FileInputStream read() Overflow Problem Java Basics - Anfänger-Themen 6
C Datentypen Rückgabewert von "new FileInputStream" Java Basics - Anfänger-Themen 4
K FileInputStream in Jar Java Basics - Anfänger-Themen 5
megachucky FileInputStream findet nur absoluten Pfad, keinen Relativen ?! Java Basics - Anfänger-Themen 7
B FileInputStream schliessen: unreported Exception...must be caught Java Basics - Anfänger-Themen 6
W new FileInputStream() blockiert bei fifo (named pipe) Java Basics - Anfänger-Themen 2
G FileInputStream--> Zahlen aus Datei lesen Java Basics - Anfänger-Themen 7
B FileinputStream und BufferedInputStream Java Basics - Anfänger-Themen 12
P Fileinputstream to image? Java Basics - Anfänger-Themen 3
I FileInputStream global deklarieren Java Basics - Anfänger-Themen 2
G relativer Pfad bei FileInputStream Java Basics - Anfänger-Themen 11
T Unterschiedliche Werte beim FileInputStream Lesen Java Basics - Anfänger-Themen 2
F FileInputStream(File file) funzt net Java Basics - Anfänger-Themen 2
R FileInputStream.read() != FileReader.read(). Pls Help Java Basics - Anfänger-Themen 5
C FileInputStream sehr langsam Java Basics - Anfänger-Themen 5
Z FileInputStream bricht ab Java Basics - Anfänger-Themen 6
frau-u Probleme mit richtiger Verwendung von FileInputStream Java Basics - Anfänger-Themen 2
G FileInputStream Java Basics - Anfänger-Themen 6
W aus ObjectInputStream muß FileInputStream werden Java Basics - Anfänger-Themen 12
C FileInputStream und FileOutputStream Java Basics - Anfänger-Themen 4
S Input/Output System.out.println - Manipulieren bzw. Alternative..? Java Basics - Anfänger-Themen 2
J Vector Manipulieren.. Wie? Java Basics - Anfänger-Themen 16
J String manipulieren Java Basics - Anfänger-Themen 3
G ARP Cache manipulieren Java Basics - Anfänger-Themen 7
M Systemzeit manipulieren Java Basics - Anfänger-Themen 11
X Objekte beim Erstellen manipulieren Java Basics - Anfänger-Themen 6
N String manipulieren Java Basics - Anfänger-Themen 15
R JVM zur laufzeit manipulieren? Java Basics - Anfänger-Themen 4
D text dateien mit RandomAccessFile manipulieren Java Basics - Anfänger-Themen 6
D textdateien manipulieren, welche klasse? wie? Java Basics - Anfänger-Themen 8
J Werte in einer Klasse aus anderer Klasse manipulieren Java Basics - Anfänger-Themen 17
T Vektorgrafiken manipulieren? Java Basics - Anfänger-Themen 10
Z Applet: Eingabe aus Textfeld auslesen und manipulieren Java Basics - Anfänger-Themen 3
T Zahlen Umkehren / Manipulieren / Sortieren Java Basics - Anfänger-Themen 18
M Wie auf ein Objekt zugreifen und dieses manipulieren? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben